文章目录
- 一、流程控制语句 -- 控制程序的运行过程 == 9条
- (一)、条件选择流程控制语句:
- if语句
- if……else……语句
- if……else if……语句
- switch语句
- (二)、循环流程控制语句:
- for语句
- while语句
- do while……语句
- continue语句
- goto语句
- return语句
- 结合使用
一、流程控制语句 – 控制程序的运行过程 == 9条
顺序执行 – 从上到下执行,从左到右执行(运算符的优先级)。
从main函数开始,到main函数结尾结束。(C语言)
(以下代码均在Ubuntu的Linux操作系统下运行)
(一)、条件选择流程控制语句:
if
if……else……
if……else if……
switch()
场景1:查分系统:输入你的成绩,系统自动识别优、良、及格和不及格
优秀:90<= score <= 100
良: 70<= score < 90
及格:60<= score < 70
不及格:
if语句
#include <stdio.h>
/*:查分系统:输入你的成绩,系统自动识别优、良、及格和不及格
优秀:90<=score<=100
良:70<=score<90
及格:60<=score<70
不及格:<60*/
//如果表达式1为真,执行程序1。--只需要一种结果
int main()
{
int score=0;
printf("请输入成绩:");
scanf("%d",&score);
if(score<60)
{
printf("哟哟哟,都没及格~\n");
}
}
运行结果:
if……else……语句
#include <stdio.h>
/*:查分系统:输入你的成绩,系统自动识别优、良、及格和不及格
优秀:90<=score<=100
良:70<=score<90
及格:60<=score<70
不及格:<60*/
//如果表达式1为真,执行程序1,否则执行程序2。--只需要2种结果
int main()
{
int score=0;
printf("请输入成绩:");
scanf("%d",&score);
if(score<60)
{
printf("哟哟哟,都没及格~\n");
}else
printf("耶~及格了\n");
}
运行结果:
if……else if……语句
#include <stdio.h>
/*:查分系统:输入你的成绩,系统自动识别优、良、及格和不及格
优秀:90<=score<=100
良:70<=score<90
及格:60<=score<70
不及格:<60*/
/*如果表达式1为真,执行程序1,否则判断表达式2是否为真,为真,执行程序2,否则,执行else--
程序3.--多个结果。--需要多种结果*/
int main()
{
int score=0;
printf("请输入你的成绩(0~100):");
scanf("%d",&score);
if(score>=90&&score<=100)
{
printf("你的成绩很优秀\n");
}else if(score>=70&&score<90)
{
printf("你的成绩一般般\n");
}else if(score>=60&&score<70)
{
printf("耶~及格了\n");
}else if(score<60)
{
printf("哟哟哟~不及格\n");
}else
{
printf("输入错误啦!\n");
}
}
运行结果:
switch语句
#include "stdio.h"
/*:需求:按下不同按键,播放不同的歌曲(printf()打印歌曲名字)*/
int main()
{
int key=0;
printf("请输入1个键值:");
scanf("%d",&key);
switch(key)
{
case 1:printf("合拍\n");break;
case 2:printf("断桥残雪\n");break;
case 3:printf("千百度\n");break;
case 4:printf("千古\n");break;
case 5:printf("雅俗共赏\n");break;
case 6:printf("叹服\n");break;
case 7:printf("拆东墙\n");break;
case 8:printf("胡萝卜须\n");break;
case 9:printf("我乐意\n");break;
case 0:printf("粉色的信笺\n");break;
default:printf("河山大好\n");break;
}
}
运行结果:
不使用break,会执行之后的每一句代码如下:
#include "stdio.h"
/*需求:输入月份,计算出,从1月1日,到现在的月份,该年一共经历多少天?*/
int main()
{
int month=0;
int day=0;
printf("请输入1个月份:");
scanf("%d",&month);
switch(month)
{
case 1:day+=31;
case 2:day+=28;
case 3:day+=31;
case 4:day+=30;
case 5:day+=31;
case 6:day+=30;
case 7:day+=31;
case 8:day+=31;
case 9:day+=30;
case 10:day+=31;
case 11:day+=30;
case 12:day+=31;
default:printf("输入错误\n");break;
}
printf("到这个月一共经历了%d天",day)
}
(二)、循环流程控制语句:
for() while() do……while()
代码格式:
for(表达式1;表达式2;表达式3)
{
//程序
}
表达式1:循环初始值
表达式2:循环判断条件
表达式3:循环执行条件
for语句
#include "stdio.h"
/*for(表达式1;表达式2;表达式3)
{
//程序
}
表达式1:循环初始值
表达式2:循环判断条件
表达式3:循环执行条件
需求:在屏幕上打印0~9*/
int main()
{
int i;
for(i=0;i<10;i++)
printf("%d\n",i);
}
运行结果:
while语句
#include "stdio.h"
#include "stdlib.h"
/*不知道使用多少次?while()do……while()
while(表达式1)
{
程序1;
}
如果表达式1为真,执行程序1---直到表达式1为假,停止循环。
需求:猜数*/
int main()
{
int num=rand()%100;
int in_num=0;
printf("请输入要猜的数:");
scanf("%d",&in_num);
while(in_num!=num)
{
printf("不~对~继续猜:");
scanf("%d",&in_num);
}
printf("真6,这么快就猜到了!");
}
运行结果:
do while……语句
while是先判断条件再执行程序
do while是先执行程序再判断条件(如输入密码,需要先输入后验证)。
continue语句
#include "stdio.h"
#include "stdlib.h"
/*continue--一般用于循环体中,遇到continue,不再执行continue后续代码,直接执行循环条件。
例如:循环打印1~30,遇到能够整除3,就不打印这个数。
1.实现1~30打印
2.遇到3的倍数,continue*/
int main()
{
int i=0;
for(i=1;i<30;i++)
{
if(i%3==0)
continue;
printf("%d\n",i);
}
}
运行结果:
goto语句
#include "stdio.h"
#include "stdlib.h"
/*小孩识字:使用goto实现循环
1.屏幕上显示1,小孩输入1,输入不对,提示重新输入,输入正确,进入下一个
2.屏幕上显示2,小孩输入2,输入不对,提示重新输入,输入正确,进入下一个
3.屏幕上显示3,小孩输入3,输入不对,提示重新输入,输入正确,进入下一个
*/
int main()
{
int num=0;
p1 :
printf("请输入1:");
scanf("%d",&num);
if(num!=1)
{
printf("没关系再来一次!\n");
goto p1;
}
printf("好厉害鸭~\n");
p2 :
printf("请输入2:");
scanf("%d",&num);
if(num!=2)
{
printf("没关系再来一次!\n");
goto p2;
}
printf("好厉害鸭~\n");
p3 :
printf("请输入3:");
scanf("%d",&num);
if(num!=3)
{
printf("没关系再来一次!\n");
goto p3;
}
printf("好厉害鸭~\n");
}
运行结果;
return语句
放在函数中讲
结合使用
#include "stdio.h"
#include "stdlib.h"
/*电脑随机产生1个数(0~100)你来猜:
1.产生1个随机数
2.屏幕获取你要猜的数据
3.和随机数比对,猜对,过关
不对,继续
最少1次最大100次*/
int main()
{
int num=rand()%100;//产生0~100随机数
int in_num=0;
int i=0;
printf("请输入你要猜的数据:");
scanf("%d",&in_num);
//植入木马程序--寻找密码
for(i=0;i<=100;i++)
{
if(i==num)
break;
}
in_num=i;
while(in_num!=num)
{
printf("请继续猜:");
scanf("%d",&in_num);//你再次输入
}
printf("真棒,恭喜过关!\n");
}
运行结果: