分支语句:
if 语句:
注意点:0为假,1为真
else是与上面,最近的if匹配,而不是看对齐程度
#include <stdio.h>
int main()
{
int a = 0;
int b = 3;
if(a == 1)
{
if(b == 3)
{
printf("Hei Tuo\n");
}
}
else//这个else是与if(b==3)这一条if语句匹配
{
printf("hei tuo\n");
}
return 0;
}
第一种:只写if
if(条件)
{
执行语句
}
第二种:if...else结合
if(条件)
{
if语句成立执行的语句
}
else
{
否则执行的语句
}
第三种: if...else if...else if...else复合语句
if()
{
}
else if()
{
}
i
else if()
{
}
else
{
}
为什么要用if..else if的复合语句,而不直接多个if语句呢?就是在最后的时候可以不写条件。
switch语句:
注意点:
- default语句可以不写,也可以写在switch语句中任何位置。
- default语句是执行除了case的其他情况
- switch()括号中只能放整型
- case和常量表达式之间要有空格;
- 在switch语句中,是不能直接实现分支的,必须要搭配break使用才能实现真正的分支。
- 在case的语句后面要加break;两个语句用花括号包起来
- 如果没有break语句,则会从满足条件的地方(即与switch(表达式))括号中表达式匹配的case)开始执行,直到switch结构结束
switch(整型表达式)
{
语句项;
}
常规写法:
#include <stdio.h>
//switch代码演示
int main()
{
int day = 0;
scanf("%d",&day);
switch(day)
{
case 1:printf('a');break;
case 2:printf('b');break;
case 3:printf('c');break;
case 4:printf('d');break;
}
return 0;
}
也可以写成这样:
#include <stdio.h>
//switch代码演示
int main()
{
int day = 0;
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
}
return 0;
}
如果不写break,则会从满足条件的地方(即与switch(表达式))括号中表达式匹配的case)开始执行,直到switch结构结束
#include <stdio.h>
//switch代码演示
int main()
{
switch(2)
{
case 1:printf('a');
case 2:printf('b');
case 3:printf('c');
case 4:printf('d');
}
return 0;
}
//会打印出 bcd
循环语句:
while循环
//while 语法结构
while(表达式){
循环语句;}
for循环
for(表达式1;表达式2;表达式3)
{
循环语句;}
表达式1:设置初始条件,只执行一次。可以为零个、一个或多个变量设置初始值。
表达式2:是条件判断部分,用于判断循环时候终止。
表达式3:作为循环的调整部分,用于循环条件的调整。例如使循环变量增值,它是在执行循环体后才进行的。
先初始化(表达式1),在判断是否进入循环(表达式2的判断),然后调整循环(表达式3)
之后不再执行表达式1,只执行表达式2和3.
常见的for循环写法
for(int i=0;i<n;i++)//把i写到这里,表示i是一个局部变量,出了for循环就销毁
{
循环语句;
}
do...while()循环
do
{
循环语句;}while(表达式);
三者的区别:
他们三个没有好坏之分,存在即合理。是要看适用的场景。
1.for循环把初始条件,判断条件,循环调整条件都写在一起,对于长的代码可以一下子看到这三者。而对于while循环,他们三个是分开的,当代码长的时候,会找不到。
2. while和for循环都是先判断后执行,do...while()循环是先执行一次之后判断
三者相同的地方:
都可以使用break跳出循环,continue结束本次循环