分支结构分为if...else...语句和switch语句。
if语句
if翻译过来其实就是“如果”的意思相当于做一个判断,判断一个条件是真的还是假的,如果条件是真的就会执行相应的语句,打出来的代码如下:
if(表达式)
语句;
表达式就是你所要判断的一个条件,条件是真的就会执行语句。
if语句经常会跟else搭在一起使用,毕竟有真肯定会有假,else就代表if条件为假时,所要执行的语句,跟if搭配时的代码如下:
if(表达式)
语句;
else
语句;
if和else在使用时有许多需要注意的事情:
1、当条件为真(假)时,只会执行紧跟着if(else)后面的那一条语句,如果想执行多条语句的话需要加上花括号“{}”把多条语句包含起来,如:
if(else)(表达式)
{
语句1;
语句2;
}
2、if和else是可以进行多条件判断的,只需要在else后面的语句中再加上if即可。
3、悬空else,else总是跟最近的一个if相匹配,所以我们需要注意在写代码时对花括号的正确使用,避免写出来的代码有误,举个例子:
int a=0;
int b=2;
if(a==1)
if(b==2)
printf("haha\n");
else
printf("hehe\n");
这个代码最终输出的结果是什么都没有,判断a==1这个表达式为假后面的if语句不再执行,而else是跟它最近的if相匹配,所以最终没有输出,如果你想else跟第一个if匹配,你就需要正确的使用花括号:
int a=0;
int b=2;
if(a==1)
{
if(b==2)
printf("haha\n");
}
else
printf("hehe\n");
switch语句
switch中文意思为转换,它属于if…else…语句里的一种特殊语句,用于一个判断条件有多个结果的语句,代码如下:
switch(表达式)
csae value1:
语句;
case value2:
语句;
default:
语句;
通俗的来讲,表达式就相当于一把可以变换数字的钥匙,case1和case2还有default就相当于门,如果钥匙变化成了数字1这把钥匙就可以开case1的门,如果不是数字1也不是数字2这把钥匙就可以开default的门,这些门就相当于多个结果。当然case的个数是由问题本身决定的,可以有很多个,defualt可以有也可以没有,也是根据问题来决定的。
举个例子:
#include <stdio.h>
int main()
{
int i=0;
scanf("%d",&i);
switch(i%3)
{
case 0:
printf("余数是0\n");
break;
case 1:
break;
printf("余数是1\n");
break;
case 2:
printf("余数是2\n");
break;
}
return 0;
}
当i%3为1时,程序就会自动跳到case为1的语句中,输出余数是1。
需要注意的是,switch后面的表达式必须是整型的,case后面必须是整型常量。当然这两者后面也可以是字符型,因为字符型其实也是属于整型这一类的,它的本身其实是ASLL码值。