分支
在分支结构程序中肯定少不了if语句和Switch语句,其中if语句相对于Switch语句会更简单刚容易理解,下面就先来了解一下if语句。
if语句
if语句顾名思义就是一个用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。一个简单的例子:对于我今天是否带伞出门那就要看今天的天气,如果今天要下雨那么就带伞,如果没有就不带。其中天气情况就是一个变量,而我是否带伞就是下面要执行的语句。所以if语句会根据变量的不同而选择不同的语句执行。
当然一个if语句明显只能执行一个语句,想要完成上述例子必须还要引用else的if语句来完成完整的判断。再来一个简单的例子:判断一个证书是否能被五整除。’
int main()
{int a=0;
printf("请输入a的值:");
scanf("%d",a);
if(a%5==0)
printf("能被五整除");
else
printf("无法被五整除");
return 0;
}
上面呢就是这个例子运行时需要的代码由此可见else能够增加if语句的判断情况,如果运用好else的if语句便能够更好地掌控代码。
嵌套式的if语句
学完了简单的if语句,接下来再来学学更进一步的嵌套式if语句。什么是嵌套式呢?
顾名思义就是一个套一个嘛,就是一个if语句中在加入一个if语句。其作用呢就是在判断完一种情况后再一次进行判断,下面再举个例子:请判断a为正数还是偶负数,如果是正数在继续判断a为奇数还是偶数。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a = 0;
printf("请输入a的值:");
scanf("%d", &a);
if (a > 0) {
if (a % 2 == 0) {
printf("a为正偶数");
}
else {
printf("a为正奇数");
}
}
else
printf("a为负数");
}
将每一句判断后面都加一个括号使代码看起来更加明了也方便他人观看。当然如果if后面要接一个语句那么大括号是不可少的就好比如以下代码:
if (n1>n2)
{
max = n1 ;
min = n2 ;
}
else
{
max = n2 ;
min = n1 ;
}
如果将其大括号去除那么下面的else便无法识别出现报错。原因就是没有大括号的if只能识别除下一次判断的一条语句,上述代码的if后面明显有两条语句然而if只会识别第一条,并且还会导致下面一条else判断语句无法对应到if导致报错,这也是易错点之一,那么接下来就来总结一些在使用if语句中可能犯的错误。
易错点
新手使用if语句时难免会出现一些小小的错误,比如说
一
if a%5==0 ----------------> if(a%5==0)
printf("能被五整除");
很明显就犯了少加括号的错误,if后面的判断需要加在if后的括号内
二
if(a%5=0) -----------------> if(a%5==0)
printf("能被五整除");
这个地方也是很多新手容易犯的错误,在判断a的时候只用一个等号,那么这个if语句就无法执行也就报错了。正确应该是使用两个等号
三
if(a==b==c)×
if(a==b&&b==c)√
在if语句中是不能使用连等的,应为 == 是双目运 算符,所以 a = = b = =c是不能实现对三个变量进行判断。
四
if(n>0);
printf("n为正值"(×)
if(n>0)
printf("n为正值");(√)
这里的错误呢是if语句后面跟了一个分号使得if语句提前结束了导致只进行了判断并没有接续后面的语句。