今天学习分支和循环语句。
C语言是结构化的语言
生活中的结构分为:
顺序结构
选择结构
循环结构
分支语句:if语句
Switch语句
循环语句:while语句
For语句
Do while
C语言中由一个分号;隔开的就是一条语句。
If语句:
If语句的结构:
If(表达式)
语句;
If(表达式)
语句;
Else if(表达式)
语句;
Else
语句;
代码演示:
int main()
{
int age = 10;
if (age >= 18)
printf("adualt");
else
printf("child");
return 0;
}
输出:child
如果else后面带有两个语句则,
这种明显不合理,所以需要在else后加大括号
然后是elseif,我这么写想表达60不属于young,但是打印还是出了young,所以18<age<26这种写法不对,因为检测到18<age为真的时候就会执行打印。
正确写法为:age>=18 && age<26
int main()
{
int age = 60;
if (age <18)
printf("child");
else if(age>=18 && age<26)
printf("young\n");
return 0;
}
可以继续写:
int main()
{
int age = 60;
if (age < 18)
printf("child");
else if (age >= 18 && age < 26)
printf("young");
else if (age >= 26 && age < 40)
printf("mid");
else if (age >= 40 && age < 60)
printf("high");
else if (age >= 60)
printf("old");
return 0;
}
观察下面代码,猜测会打印什么
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hehe");
else
printf("haha");
return 0;
}
结果是不打印。原因是else和离他最近的一个if匹配,所以else和if匹配后,第一个if(a==1)不成立后直接结束。如果第一个if为真才会执行后面那个if、else。代码应该如下写:
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
printf("hehe");
else
printf("haha");
}
else
{
if (b == 2)
printf("heihei");
else
printf("haha");;
}
return 0;
}
代码风格也是一种很重要的东西,如果else if else写到一行,你写出来以后再看都看不懂,看的很难受,所以一定要代码风格搞好增加可读性。