文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C语言的if else语句怎么使用

2023-07-02 09:18

关注

本篇内容介绍了“C语言的if else语句怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1、前言

(1)C语言是结构化的程序设计语言。C语言的三种基本程序结构分别是:

(2)分支语句(选择语句)和循环语句

C语言的if else语句怎么使用

(3)什么是语句?

C语言中由一个分号(;)隔开的就是一条语句。

2、if语句的语法结构

大致分为三种:

if(表达式)
    语句;

if(表达式)
    语句1;
else
    语句2;

//多分支
if(表达式1)
    语句1;
else if(表达式2)
    语句2;
else
    语句3;

3、关于if else语句的示例

示例一:了解if else结构

#include <stdio.h>int main(){int age = 10;if (age >= 18)printf("成年\n");return 0;}

运行该程序,将不会有打印结果;如果在此基础上加上

elseprintf("未成年\n");

则运行结果为:

未成年

示例二:if或else默认只执行它下面的一句

将示例一中的年龄10改为20,再在else的语句下加上一句,查看运行结果。

#include <stdio.h>int main(){int age = 20;if (age >= 18)printf("成年\n");elseprintf("未成年\n");printf("不能去网吧\n");return 0;}

运行结果:

成年

不能去网吧

显然这个结果是不合理的,我们想要的是如果是“未成年”,才要打印“不能去网吧”,但是输入的年龄是20,显示“成年”就可以了,它还是显示了“不能去网吧”。这就证明if/else默认的是只执行它下面的一条语句。在我敲这段代码的时候,实际上这个编译器它已经很智能了,能体现出if/else默认的是只执行它下面的一条语句这个性质的一个表现就是:else下的第二条语句它是自动和else对齐的,为了查看程序是否能只打印“成年”,本次代码特地手动给else下的第二条printf语句之前敲了tab键。

那么怎样才能让程序实现我们想要的功能呢?

将else里面要执行的两条语句给它用大括号括起来,一个“{}”就是一个代码块,就是一个逻辑。

{
    语句列表;
}

代码修正如下:

#include <stdio.h>int main(){int age = 20;if (age >= 18){printf("成年\n");}else{printf("未成年\n");printf("不能去网吧\n");}return 0;}

示例三:if else的多分支情况

错误示例:

int main(){int age = 60;if (age < 18)printf("少年\n");else if (18 <= age < 26)printf("青年\n");return 0;}

运行该程序以后,会打印“青年”。为什么会出现这样的结果呢?

C语言的if else语句怎么使用

因此虽然60并不在18到26之间,也会打印“青年”。

正确写法:

int main(){int age = 60;if (age < 18)printf("少年\n");else if (age >= 18 && age < 26)printf("青年\n");else if (age >= 26 && age < 40)printf("壮年\n");else if (age >= 40 && age < 60)printf("中老年\n");else printf("老年\n");return 0;}

运行结果为:老年

示例四:悬空else

int main(){int a = 0;int b = 2;if (a == 1)if (b == 2)printf("hi\n");elseprintf("hello\n");return 0;}

运行该代码之后,打印窗口无结果。为什么呢?

来看一下如果我不手动删除tab间隔,编译器是怎么识别这段代码的。(我再给它加上{}使得程序的可读性更高一些)

int main(){int a = 0;int b = 2;if (a == 1){if (b == 2){printf("hi\n");}else{printf("hello\n");}}return 0;}

可以看到,else与离他最近的那个if匹配了,因为a的值是0,所以就不会进入第一个if,自然也就不会有打印结果了。所以说代码的分隔很重要,加上{}将代码分隔开可以使得程序的可读性提高。

4、if else 书写形式的对比

C语言的if else语句怎么使用

代码一以及代码二实际上实现的功能是一样的。下面利用一段代码来解释一下为什么说代码一和代码二实际上是一样的。

int test(){if (1)return 0;printf("haha\n");return 1;}int main(){test();return 0;}

运行该程序的时候,发现什么都不会打印。摁下fn+f10调试代码,可以看到执行完test中的return 0就直接跳过了printf(“haha\n”);return 1;这两句。

修改代码如下:

int test(){if (0)return 0;return 1;}int main(){test();return 0;}

可以看到代码走到if (0)后,再走就走到return 1了。

C语言的if else语句怎么使用

代码三与代码四也是一样的,为什么把num == 5 写为 5 == num 呢?为了避免出现一下情况

int main(){int num = 1;if (num = 5){printf("hello\n");}}

将 == 写成了 =,就变成了将5赋值给num,此时判断条件为真,就不是判断num是否是5了,程序最终会打印hello。但是在代码四里面如果将5 == num 写为 5 = num程序就报错了。

5、例子

输出1-100之间的奇数

int main(){int i;for(i = 0; i < 100; i++)if (i % 2 == 1){printf("%d\t", i);}else{printf("");}return 0;}

1       3       5       7       9       11      13      15      17      19      21      23      25      27      29     31       33      35      37      39      41      43      45      47      49      51      53      55      57      59     61       63      65      67      69      71      73      75      77      79      81      83      85      87      89     91       93      95      97      99 

“C语言的if else语句怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯