分支语句 -- if
单分支
if(表达式)
{
执行语句块;
}
表达式为真,执行语句块;表达式为假,不执行语句块
双分支
if(表达式1)
{
语句块1;
}
else
{
语句块2;
}
若表达式1为真,执行语句块1;表达式1为假,执行语句块2,结束
多分支
if(表达式1)
{
语句块1;
}
else if(表达式2)
{
语句块2;
}
……
else
{
语句块3;
}
表达式1为真,执行语句块1;若为假,执行表达式2,若表达式2为真,则执行语句块2;为假则执行语句块3
#include <stdio.h>
int main(void)
{
int a=4;
int b=3;
if(0)
{
printf("%d\n",a);
}
else if(1)
{
printf("%d\n",b);
}
else
{
printf("akskdk\n");
}
return 0;
}
循环语句 -- for
for(表达式1;表达式2;表达式3)
{
语句块;
}
1、首先执行表达式1,只执行一次。表达式1一般为赋值语句,一般不能是定义语句。
2、执行表达式2,判断如果表达式2为真,执行语句块,若为假,结束循环。
3、执行语句块,执行表达式3,回到第二步。
#include <stdio.h>
int main(void)
{
int i=0;
for(i=0;i<10;i++)
{
printf("hello world\n");
}
return 0;
}
循环的省略
省略表达式1,会默认变量为0;
省略表达式2,进入死循环;
省略表达式3,进入死循环;
全部省略,进入死循环;
省略表达式1、3,相当于while。
循环语句 -- while
while(表达式)
{
语句块;
}
表达式为真,执行语句块;表达式为假,跳出循环。
do
{
语句块;
}while(表达式)
先执行语句块,再去执行表达式是否为真,如果表达式为真,执行语句块;为假,跳出循环。至少都会执行一次。
#include <stido.h>
int main(void)
{
int a=7;
do
{
printf("ajskld"\n);
a++;
}while(a<6)
return 0;
}
选择语句 -- switch
switch(表达式)---一般为常量表达式
{
case 常量表达式1:语句块1;break;
case 常量表达式2:语句块2;break;
case 常量表达式3:语句块3;break;
…………
default:表达式n;
}
判断表达式和下面的常量表达式是不是一样的,找到对应的那个常量表达式,就执行表达式后面的语句块。
P.输入学生百分制成绩,判断成绩等级
90~100--A
……
60以下--F
#include <stdio.h>
int main(void)
{
int score;
scanf("%d",&score);
if(score==100)
{
score=90
}
score=score/10;
switch(score)
{
case 9:printf("该学生成绩为A\n");break;
case 8:printf("该学生成绩为B\n");break;
case 7:printf("该学生成绩为C\n");break;
case 6:printf("该学生成绩为D\n");break;
default:printf("该学生成绩为F\n");break;
}
return 0;
}
循环的嵌套
for(表达式1;表达式2;表达式3)
{
for(表达式4;表达式5;表达式6)
{
语句块;
}
}
外层循环执行一次,内层循环执行完
表达式1只执行一次,表达式4每次进入内层循环,重新进入,更新表达式4
跳转语句
goto:跳转语句
continue:结束本次循环,继续下一次循环
break:结束本次循环
return:结束整个循环
return 0:正常结束
return -1:异常结束