分支语句也被叫做条件判断语句,顾名思义,就是如果程序判断此条件成立,则执行该条件语句中的代码,反之则跳过该段代码
看完这篇文章,或许可以浅浅加深大家对分支语句的理解
if语句
if语句一般搭配else if 和else来使用
int main()
{
int i = 0;
for(i=0;i<5;i++)
{
if(i==0)
{
printf("0\n");//如果i==0则打印0
}
else if(i==1)
{
printf("1\n");//如果i==1则打印1
}
else
{
printf("666")//如果上述条件都不成立则打印666
}
}
return 0;
}
使用if else if else要注意一下几点:
1.这个组合在执行时,一旦有一个条件成立,代码在执行完这个条件后则会跳过该组合
例如:在上图中,当i=0时,条件(i==0)成立,则程序在打印完0后就会跳过下面的else if和else语句,看都不带多看一眼的,如果需要继续判断下去,则需并排使用if
int a = 1;
int b = 2;
int c = 3;
int tmp = 0;
if(a<b)
{
tmp = a ;
a = b;
b = tmp;
}
if(a<c)
{
tmp = a;
a = c ;
c = tmp;
}
printf("%d",a);
上述代码中的两个if语句都一定会进行判断
2.千万不要手抖在判断语句后加个分号,像这样:
if(i==0)://致命分号
{
printf("我一定会打印出来的!-.-");
}
如果在后面加分号,则表示该条语句结束,所以无论该条件是否成立,代码块内部的代码都会执行。
3.错将"==“写成”="
int i =1;
if(i=3)//i=3是一个赋值语句,不是判断语句,该表达式结果为非0的3,所以程序判断该条件成立
{
printf("求你把多打一个=吧");
}
如果将经常条件里的内容写成这样,不妨改成下面这种写法
if(3==i)//将不可修改的3写在左边,即使将==写成=,编译器也会报错,很容易发现
{
printf("666");
}
switch语句
int n =0;
scanf("%d",&n);
switch(n)
{
case 1:
case 2:
case 3:
case 4:
case 5:printf("工作日\n");
break;
case 6:
case 7:printf("周末休息日\n");
break;
default:printf("输入错误");
}
swich括号里的必须是一个整形表达式,不能为字符和浮点数,当下面的case后面的整形与之相同时,则将执行该条case语句并会一直接着执行下面的case语句,直到遇到break跳出switch,当没有与之匹配的case语句,则会执行default中的语句。
注意事项:
1.若不加break,switch找到与之匹配的case语句后会一直执行下去(若没有与之匹配的case,执行完default语句也会接着往下执行),可能无法达到想要的运行结果,所以要根据情况加上break语句以达到一定的效果。
2.default语句一般放在switch语句的结尾,最好也要加上break修饰。
3.case后面的数字是可以不按照大小顺序往下写的。
代码块
代码块就是一堆代码的集合体,在if,else if 和switch等后面若不使用代码块,则只能跟一句代码,使用代码块,还可以增强代码的可读性,使得代码更加美观。
int i =1;
if(1==i)
printf("1");//只能跟这一句代码,后面的代码不归此if管辖
printf("2");//不归上面的if管
if(1==i)
{
printf("6");
printf("7");
printf("8");
}//只要if条件成立,该代码块里的代码都会执行,反之则都不执行
再次强调:
1.判断语句千万别写成了赋值语句
2.switch要注意在case后加上break
3.多用代码块来配合分支语句来实现相应功能,并提高代码可读性
希望我的这篇文章对你有帮助,如有错误,请指正