当前位置: 首页 > 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");
}

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

相关文章:

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

文章目录一、流程控制语句 -- 控制程序的运行过程 9条&#xff08;一&#xff09;、条件选择流程控制语句&#xff1a;if语句if……else……语句if……else if……语句switch语句&#xff08;二&#xff09;、循环流程控制语句&#xff1a;for语句while语句do while……语句co…...

WinForm | C# 界面弹出消息通知栏 (仿Win10系统通知栏)

ApeForms 弹出消息通知栏功能 文章目录ApeForms 弹出消息通知栏功能前言全局API通知栏起始方向通知排列方向通知栏之间的间隔距离无鼠标悬停时的不透明度消息通知窗体的默认大小示例代码文本消息提示栏文本消息提示栏&#xff08;带选项&#xff09;图文消息提示栏图文消息提示…...

刷题之最长公共/上升子序列问题

目录 一、最长公共子序列问题&#xff08;LCS&#xff09; 1、题目 2、题目解读 ​编辑 3、代码 四、多写一题 五、应用 二、最长上升子序列问题&#xff08;LIS&#xff09; 1、题目 2、题目解读 3、代码 四、多写一道 Ⅰ、题目解读 Ⅱ、代码 一、最长公共子序列问题&…...

【数据结构】千字深入浅出讲解栈(附原码 | 超详解)

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;C语言实现数据结构 &#x1f4ac;总结&#xff1a;希望你看完…...

自动驾驶V2X

1 SoC MDM9250 2 设备网络节点 mhi_swip0 rmnet_mhi0 3 网络协议栈log打印控制 include/linux/netdevice.h ethtool -s eth0 msglvl [level] ethtool -s eth0 msglvl 0x6001 4 URLs MHI initial design review https://lore.kernel.org/lkml/001601d52148$bd852840$388f78c0$c…...

零基础自学网络安全/渗透测试有哪些常见误区?

一、网络安全学习的误区 1.不要试图以编程为基础去学习网络安全 不要以编程为基础再开始学习网络安全&#xff0c;一般来说&#xff0c;学习编程不但学习周期长&#xff0c;且过渡到网络安全用到编程的用到的编程的关键点不多。一般人如果想要把编程学好再开始学习网络安全往…...

ConvMixer:Patches Are All You Need

Patches Are All You Need 发表时间&#xff1a;[Submitted on 24 Jan 2022]&#xff1b; 发表期刊/会议&#xff1a;Computer Vision and Pattern Recognition&#xff1b; 论文地址&#xff1a;https://arxiv.org/abs/2201.09792&#xff1b; 代码地址&#xff1a;https:…...

day10—编程题

文章目录1.第一题1.1题目1.2思路1.3解题2.第二题2.1题目2.2涉及的相关知识2.3思路2.4解题1.第一题 1.1题目 描述&#xff1a; 给定一个二维数组board&#xff0c;代表棋盘&#xff0c;其中元素为1的代表是当前玩家的棋子&#xff0c;0表示没有棋子&#xff0c;-1代表是对方玩…...

如何测量锂电池的电量

锂电池在放电时我们有时需要知道电池的实时电量&#xff0c;如电池电量低了我们就需要及时给锂电池充电&#xff0c;避免电池过度放电。我手里的这个就是个单节锂电池电量显示模块&#xff0c;只需要将这个模块接到锂电池的正负极即可显示电量。这个模块的电量分为四档&#xf…...

菜鸟刷题Day6

⭐作者&#xff1a;别动我的饭 ⭐专栏&#xff1a;菜鸟刷题 ⭐标语&#xff1a;悟已往之不谏&#xff0c;知来者之可追 一.链表内指定区间反转&#xff1a;链表内指定区间反转_牛客题霸_牛客网 (nowcoder.com) 描述 将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转…...

DecimalFormat格式化显示数字

DecimalFormat 是 NumberFormat 的一个具体子类&#xff0c;用于格式化十进制数字&#xff0c;可以实现以最快的速度将数字格式化为你需要的样子。 DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充&#xff0c; # 表示只要有可能就…...

cpu中缓存简介

一级缓存是什么&#xff1a; 一级缓存都内置在CPU内部并与CPU同速运行&#xff0c;可以有效的提高CPU的运行效率。一级缓存越大&#xff0c;CPU的运行效率越高&#xff0c;但受到CPU内部结构的限制&#xff0c;一级缓存的容量都很小。 CPU缓存&#xff08;Cache Memory&#xf…...

【数据结构】二叉树的遍历以及基本操作

目录 1.树形结构 1.概念 2.二叉树 2.1概念 2.2 两种特殊的二叉树 2.3二叉树的存储 2.4二叉树的基本操作 1.手动快速创建一棵简单的二叉树 2.二叉树的遍历 (递归) 3.二叉树的层序遍历 4.获取树中节点的个数 5.获取叶子节点的个数 6.获取第K层节点的个数 7.获取二叉…...

若依框架 --- ruoyi 表格的设置

表格 字典值转换 (1) 方式1&#xff1a;使用字典枚举的方式 var isDownload [[${dict.getType(YES_OR_NO)}]];{field : isDownload,title : 是否允许下载,formatter: function(value, row, index) {return $.table.selectDictLabel(isDownload, value);} }, (2) 方式2&…...

“两会”网络安全相关建议提案回顾

作为新一年的政治、经济、社会等发展的“风向标”&#xff0c;今年“两会”在3月13日顺利闭幕。在今年“两会”期间&#xff0c;多位人大代表也纷纷围绕网络安全、数据安全的未来发展做了提案和建议。 01 “两会”网络安全相关建议和提案回顾 建议统筹智能网联汽车数据收集与共…...

一篇文章带你真正了解接口测试(附视频教程+面试真题)

目录 一、什么是接口测试&#xff1f; 二、为什么要做接口测试&#xff1f; 三、如何开展接口测试&#xff1f; 四、接口测试常见面试题 一、什么是接口测试&#xff1f; 所谓接口&#xff0c;是指同一个系统中模块与模块间的数据传递接口、前后端交互、跨系统跨平台跨数据…...

C/C++每日一练(20230325)

目录 1. 搜索插入位置 &#x1f31f; 2. 结合两个字符串 &#x1f31f; 3. 同构字符串 &#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 搜索插入位置 给定一个排序数…...

Linux操作系统ARM指令集与汇编语言程序设计

一、实验目的1.了解并掌握ARM汇编指令集2.应用ARM指令集编写一个程序操控开发板上的LED灯二、实验要求应用ARM汇编指令集编写程序&#xff0c;实现正常状态下开发板上的LED灯不亮&#xff0c;按下一个按键之后开发板上的LED灯进入流水灯模式。三、实验原理四个LED灯的电路如下图…...

计网之HTTP协议和Fiddler的使用

文章目录一. HTTP概述和fidder的使用1. 什么是HTTP2. 抓包工具fidder的使用2.1 注意事项2.2 fidder的使用二. HTTP协议格式1. HTTP请求格式1.1 基本格式1.2 认识URL1.3 方法2. 请求报头关键字段3. HTTP响应格式3.1 基本格式3.2 状态码一. HTTP概述和fidder的使用 1. 什么是HTT…...

sql性能优化:MS-SQL(SQL Server)跟踪日志信息结果列字段说明,MSSQL的列字段说明(column)

sql性能优化&#xff1a;MS-SQL&#xff08;SQL Server&#xff09;跟踪日志信息结果列字段说明&#xff0c;MSSQL的列字段说明&#xff08;column&#xff09; 参考&#xff1a; SQL:BatchCompleted 事件类 | Microsoft Learn SQL 跟踪 | Microsoft Learn sp_trace_setevent (…...

STM32 SysTick配置详解:从原理到实践,打造精准系统时基

1. 项目概述&#xff1a;为什么SysTick配置是STM32开发的“心跳”起点在STM32的嵌入式开发世界里&#xff0c;SysTick定时器就像整个系统的心脏&#xff0c;它规律地跳动&#xff0c;为操作系统、延时函数、任务调度提供着最基础的时间基准。很多新手拿到开发板&#xff0c;跑完…...

解决Claude Code访问不稳定问题并配置Taotoken接入

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 解决Claude Code访问不稳定问题并配置Taotoken接入 Claude Code 是一款强大的 AI 编程助手&#xff0c;但部分开发者在使用过程中可…...

从官方demo到真实项目:手把手教你定制uniapp uni-card卡片的样式与交互

从官方demo到真实项目&#xff1a;手把手教你定制uniapp uni-card卡片的样式与交互 在移动应用开发中&#xff0c;卡片式设计已经成为展示内容的黄金标准。uni-app的uni-card组件为开发者提供了一个快速构建卡片式界面的基础工具&#xff0c;但实际项目中&#xff0c;我们往往需…...

从MySQL分区到OceanBase分区:迁移老手教你平滑过渡与性能调优

从MySQL分区到OceanBase分区&#xff1a;迁移老手教你平滑过渡与性能调优 当MySQL分区表遇上OceanBase分布式架构&#xff0c;传统设计思维往往成为性能瓶颈的源头。本文将揭示两种数据库分区机制的本质差异&#xff0c;并提供一套经过生产验证的迁移方法论&#xff0c;帮助您避…...

Pure Live:3大平台聚合,打造你的专属纯净直播空间

Pure Live&#xff1a;3大平台聚合&#xff0c;打造你的专属纯净直播空间 【免费下载链接】pure_live A Flutter project can make you watch live with ease. 项目地址: https://gitcode.com/gh_mirrors/pu/pure_live 你是否厌倦了在多个直播应用间来回切换&#xff1f…...

强制启动 Cursor IDE 主程序(不带 Agent 模式)

&#x1f527; 终极解决&#xff1a;强制启动 Cursor IDE 主程序&#xff08;不带 Agent 模式&#xff09;方法 1&#xff1a;用「命令行」强制启动主程序&#xff08;最稳&#xff09;按 WinR 打开运行窗口&#xff0c;输入 cmd 回车&#xff0c;打开命令提示符输入下面这行命…...

关于国内SDR(成都振芯)的介绍说明

概述 软件无线电&#xff08;SDR&#xff09;是一种无线电通信技术&#xff0c;其关键功能&#xff08;如调制解调、滤波、变频等&#xff09;通过软件在可编程硬件&#xff08;如FPGA、DSP&#xff09;上实现&#xff0c;而非依赖固定的硬件电路。这使得无线电设备具有高度的灵…...

kafka安装与可视化工具offset explore连接操作说明

1.1 环境前置要求 本地部署 Kafka 4.0 极简&#xff0c;无复杂依赖&#xff0c;只需满足 1 个核心条件&#xff1a; 本地已安装 JDK 17 及以上版本&#xff08;推荐 JDK 17&#xff09;&#xff0c;并配置好 Java 环境变量&#xff08;能在命令行执行 java -version 和 javac -…...

Sequin实战教程:构建企业级变更数据捕获管道

Sequin实战教程&#xff1a;构建企业级变更数据捕获管道 【免费下载链接】sequin Postgres change data capture to streams, queues, and search indexes like Kafka, SQS, Elasticsearch, HTTP endpoints, and more 项目地址: https://gitcode.com/gh_mirrors/se/sequin …...

豆包生成的流程图怎么导出

标题&#xff1a;不只是聊天&#xff1a;深度解析豆包——从AI助手到数字生活的“协作者” 在当前大模型应用百花齐放的时代&#xff0c;豆包&#xff0c;作为字节跳动推出的AI对话助手&#xff0c;已悄然成为许多用户日常工作与生活中的“数字伙伴”。它不仅仅是一个能回答问题…...