C语言7🔥:条件判断 if else 语句与分支(千字总结)

简介: C语言7🔥:条件判断 if else 语句与分支(千字总结)

一、if 语句的基本结构

if (条件成立){


......


}

解析:

if 代表的意思是如果,()内是判断是否执行 if 语句的条件,{ }内的…… 代表 if 要执行的内容

if 语句 不循环,条件满足只执行一次 if 内的语句,条件不满足就跳过 if 语句

二、 if 语句的基本用法

光说不练是肯定学不会的,接下来让我们在实战中来学习与掌握 if 语句

2.1 项目一 找钱

要求:计算并打印找钱,或告知用户余额不足以购买。

代码示例:

//初始化,定义两个变量,一个价格price,一个金额bill
int price = 0;
int bill = 0;
//读入价格和金额
printf("请输入价格:");
scanf("%d",&price);
printf("请输入金额:");
scanf("%d",&bill);
//判断找钱
if( bill >= price){
   printf("需要找您:%d元\n",bill - price);
}

万一金额不够,我们还要输出:您的钱不够

我们该怎么输呢?

if( bill >= price){
   printf("需要找您:%d元\n",bill - price);
}
printf("您的钱不够\n");

这样输肯定不对,因为这种情况不管钱够不够都会输出 您的钱不够

请看下方运行结果:

编辑

编辑

因为 printf("您的钱不够\n"); 不在 if 语句中,if语句如果条件不成立也不会跳过它,所以不管钱够不够都会输出 您的钱不够

所以我们需要用到else

2.2 else的用法

else = 否则的话

要输出 您的钱不够 正确的做法是:

if( bill >= price){
   printf("需要找您:%d/n元",bill - price);
}else{
   printf("您的钱不够\n");
}

这个代码的意思是:当 if 语句条件不满足(也就是bill<price)时,也就是else(否则的话),执行else中的语句。打印:您的钱不够

2.3 项目二 比较数的大小

要求:随机输入两个数,比较这两数中哪个数最大

比较数的大小(方案一) 纯 if

int a,b;
printf("请输入两个整数:");
scanf("%d %d", &a, &b); 
int max = 0;
if(a>b){
    max = a;
}
if(b>a){
    max = b;
}
printf("最大的那个数是%d\n", max);

比较数的大小(方案二) if else(更推荐)

int a,b;
printf("请输入两个整数");
scanf("%d %d",&a,&b);
int max=0;
if(a>b){
    max=a;
}else{
    max=b;
}
printf("最的大那个数是:%d\n",max);

比较数的大小(方案三) 先让其中一个数为最大值

int a,b;
printf("请输入两个整数:");
scanf("%d %d", &a, &b); 
int max = b;
if(a>b){
    max = a;
}
printf("大的那个是%d\n", max);

2.4 关于大括号{}

if与else也可以不带中括号去执行(非常不建议),条件满足只能执行if接下来的一句内容,如果带来中括号{},条件满足则可以执行{}内的全部内容

例如:

int a=3,b=4;
int max;
if(a>b)
    printf("max=a");
else
    printf("max=b");
printf("max=%d\n",max);

注:即使只有一条语句的时候也要在 if 或者 else 后面总是用{},这样做可以降低报错率

三、分支

3.1 嵌套的 if 语句

当 if 的条件满足或者不满足的时候要执行的语句也可以是一条 if 或者 if-else 语句,这就是嵌套的if语句

代码示例如下;

int a=3,b=6;
int count=10;
if(count>=0){
    if(a>b){
        printf("一切正常");
    }else{
        printf("程序有问题");   
    }
}

运行结果:

编辑

3.2 else 的配对

else总是和最近的那个 if 匹配,且与缩进无关

代码示例如下:

int code,a,count=18;
  
printf("请输入code的值:");
scanf("%d",&code);
  
printf("请输入a的值:");
scanf("%d",&a);
if( code<=0)
    if( count < 20 )
        printf("一切正常\n");
else
        printf("继续等待\n");

运行结果:

编辑

解析:由于code=3,大于0,所以 if 语句的条件code<=0不满足,所以就会跳过 if 语言,而 else总是和最近的那个 if 匹配,并且与缩进无关,所以这个else是与 if (count<20)匹配,不是与 if (code<=0)匹配。

3.3 用 if else 语句来表示分段函数

if( x < 0 ){
  f = -1;
}else if( x == 0){
  f = 0;
} else {
  f = 2 * x;
}

3.4 if 语句的常见错误

  • 忘了大括号(永远在if和else后面加上大括号,即使当时后面只有一条语句)
  • if后面忘了分号
  • 错误使用==和=
  • 使人困惑的else
目录
相关文章
|
2月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
77 5
|
2月前
|
C语言
【c语言】分支语句
C语言通过三种基本结构——顺序、选择和循环,构建复杂的程序逻辑。本文主要介绍了C语言的选择结构,即if-else语句及其变体,包括简单的if语句、if-else组合、else if多分支判断、嵌套if以及解决悬空else问题的方法。此外,还详细讲解了逻辑运算符和关系运算符的使用,以及如何利用条件操作符简化逻辑判断。最后,文章对比了if-else与switch语句在实现多分支逻辑时的应用,并解释了switch语句中的break和default关键字的作用。
33 8
|
2月前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
2月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
6月前
|
C语言
【C语言基础】:分支与循环
【C语言基础】:分支与循环
|
7月前
|
存储 C语言
C语言中的if语句编程
C语言中的if语句编程
101 0
|
2月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
17 0
|
2月前
|
程序员 C语言
【C语言】分支语句(逻辑运算符与关系运算符)
【C语言】分支语句(逻辑运算符与关系运算符)
|
4月前
|
C语言
【C语言篇】分支语句详解(超详细)
在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要顺序是满⾜实际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理的。
55 2
|
4月前
|
C语言
C语言分支语句
C语言分支语句
32 4