C语言的分支和循环是我们在C语言代码的编写中经常使用到的,我们先来介绍其中的分支。
1.if语句的表达式为:
if(判断条件)
语句
判断条件为真时,语句执行,反之语句不执行。
我们写一个判断数据是否为奇数的例子
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if (num % 2 == 1)
printf("%d 是奇数\n", num);
return 0;
}
2.如果不是奇数那么便为偶数,因此我们需要用到else来表示不是if的情况,具体代码如下:
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if (num % 2 == 1)
printf("%d 是奇数\n", num);
else
printf("%d 是偶数\n", num);
return 0;
}
3.而在一条分支的后面,我们可以跟上多条语句,不过选用使用{语句}的形式,将多条语句放于大括号之中。
例子为:
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if (num % 2 == 1)
{
printf("%d 是奇数\n", num);
printf("hello world\n");
}
else
printf("%d 是偶数\n", num);
return 0;
}
4.而在书写代码的过程中我们也会遇到多重判断,这是可以将else和if连用就可以进行多重判断,代码如下:
//要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。请看如下代码:
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if (num == 0)
printf("输⼊的数字是0\n");
else if (num > 0)
printf("输⼊的数字是正数\n");
else
printf("输⼊的数字是负数\n");
return 0;
}
5.if和else有个特性,else 总是跟最接近的 if 匹配。
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
根据我们上面所说的特性可以猜出最后的结果是什么吗。
结果是什么也没有,不知道大家答对了没有。
原因是因为例子中else语句已经和离其最近的if所匹配了,而第一个if的判断条件为a==0,条件不成立,从而导致下面的if也不执行,而else已经和if(b == 2)匹配了,所以最后的结果便是什么也没有。
6.分支语句还有个switch语句,其需要使用case和default来配合其使用。
switch后面必须为整型表达式,case后必须为整型常量,在执行过程中如果找不到相应的case语句便会执行default语句。而switch case语句有个特点便是满足条件后它会一直运行直到函数结束,如果我们想要中途停止,就不可缺少的使用break将其打断跳出。
举个例子
//输⼊任意⼀个整数值,计算除3之后的余数
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
switch (n % 3)
{
case 0:
printf("整除,余数为0\n");
break;
case 1:
printf("余数是1\n");
break;
case 2:
printf("余数是2\n");
break;
}
return 0;
}
7.在switch语句中case和default是没有顺序的区分的,只需要满足你的实际需求使用即可。