当前位置: 首页 > news >正文

C语言基础——流程控制语句

文章目录

  • 一、流程控制语句 -- 控制程序的运行过程 == 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");}elseprintf("耶~及格了\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");
}

运行结果:
在这里插入图片描述

http://www.lryc.cn/news/42718.html

相关文章:

  • WinForm | C# 界面弹出消息通知栏 (仿Win10系统通知栏)
  • 刷题之最长公共/上升子序列问题
  • 【数据结构】千字深入浅出讲解栈(附原码 | 超详解)
  • 自动驾驶V2X
  • 零基础自学网络安全/渗透测试有哪些常见误区?
  • ConvMixer:Patches Are All You Need
  • day10—编程题
  • 如何测量锂电池的电量
  • 菜鸟刷题Day6
  • DecimalFormat格式化显示数字
  • cpu中缓存简介
  • 【数据结构】二叉树的遍历以及基本操作
  • 若依框架 --- ruoyi 表格的设置
  • “两会”网络安全相关建议提案回顾
  • 一篇文章带你真正了解接口测试(附视频教程+面试真题)
  • C/C++每日一练(20230325)
  • Linux操作系统ARM指令集与汇编语言程序设计
  • 计网之HTTP协议和Fiddler的使用
  • sql性能优化:MS-SQL(SQL Server)跟踪日志信息结果列字段说明,MSSQL的列字段说明(column)
  • DNS主从复制
  • 常见的js加密/js解密方法
  • 6 python函数
  • 7.避免不必要的渲染
  • 国产化大趋势下学习linux的必要性
  • 浅谈虚树
  • 裸机条件下写一个基于时间片轮转的多任务并发程序
  • RK3588 系统定制开关机动画
  • 水文-编程命令快查手册
  • 如何优雅编写测试用例
  • [入门必看]数据结构2.3:线性表的链式表示