流程控制
选择控制
根据某种条件执行最恰当的语句
- 单分支
if(condition) //如果condition的值为真则执行
{
//指令;
}
- 双分支
if(condition) //如果condition的值为真,则执行指令1;否则执行2
{
指令1;
}
else
{
指令2;
}
- 多分支(两条分支以上)
多重if
if(condition)
{
指令1;
}
else if(condition)
{
指令2;
}
......
else
{
指令n;
}
switch分支
switch(整型表达式)
{
case 整型常量1:
...;
break; //若不写break,则程序会一直往下执行
case 整型常量2:
...;
break;
......
default:
...;
break;
}
循环控制
重复的执行指令
- for
for(开始表达式;结束表达式;过程表达式) //只要结束表达式为真,则继续循环
{
循环体;
}
- while
while(condition) //条件为真(非0)才执行
{
循环体;
}
- do-while
do //先执行一次再进行条件判断
{
循环体;
}while(condition);
循环控制:continue结束本次循环;break:结束本层循环
简单例题:输入一个分数<60不及格,[60,80)良好,[80,100]优秀
解法一:if多分支
#include <stdio.h>
int main()
{
int score=0;
printf("请输入分数:");
scanf("%d",&score);
if(score<0||score>100)
printf("输入错误\n");
if(score<60&&score>=0)
printf("不及格\n");
if(score>=60&&score<80)
printf("良好\n");
if(score>=80&&score<=100)
printf("优秀\n");
return 0;
}
解法二:switch分支
#include <stdio.h>
int main()
{
int score=0;
printf("请输入分数:");
scanf("%d",&score);
if(score<0||score>100)
{
printf("输入错误\n");
}
else
{
int a=score/10;
switch(a)
{
case 10:
case 9:
case 8:
printf("优秀\n");
break;
case 7:
case 6:
printf("良好\n");
break;
default:
printf(不及格\n);
break;
}
}
return 0;
}
程序执行结果
例题二:循环输出1-10
三种循环写法:
//-----------for 循环-----------
int i;
for(i=1;i<11;i++)
{
printf("%d "),i;
}
printf("\n");
//-----------while循环-----------
int i=0;
while(i++<10)
{
printf("%d ",i);
}
printf("\n");
//-----------do-while循环-----------
int i=1;
do
{
printf("%d ",i);
i++
}while(i<11);
三种循环结果: