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");
	}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");
}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/3329.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux学习之端口、网络协议及查看端口占用情况

端口&#xff1a;设备与外界通讯交流的出口 网络协议&#xff1a;   网络协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。 HTTP协议&#xff1a;   HTTP协议&#xff08;超文本传输协议&#xff09;是一种网络通信协议&#xff0c;它允许将超…

Mac和Linux安装Mongodb教程

Mac教程 在mongodb的官网中有mac环境的安装配置说明 在mac上安装mongodb有两种方式&#xff1a; &#xff08;1&#xff09;使用Homebrew来安装&#xff0c;如果电脑中有Homebrew&#xff0c;安装起来就比较简单&#xff0c;如果没有可以安装一个&#xff0c;以后安装其他的…

【C++学习】多态

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《C学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 多态&#x1f355;多态&#x1f35f;构成多态的条件&#x1f35f;C11 final override&#x1f35f;重…

thinkphp+vue水果购物商城网站

需要解决的主要问题&#xff1a; 1、网页编程环境和工具。 2、后台数据库的管理。 3、网站的基本功能建设。 4、对比实际应用中的购物网站的功能和运作流程&#xff0c;完善程序功能。 水果购物商城系统的主要使用者分为管理员&#xff1b;个人中心、用户管理、水果分类管理…

支持RT-Thread最新版本的瑞萨RA2E1开发板终于要大展身手了

支持RT-Thread最新版本的瑞萨RA2E1开发板终于要大展身手了 熟悉RT-Thread和瑞萨MCU的朋友都知道&#xff0c;当前RT-Thread仓库的主线代码是不支持RA2E1这个BSP的。刚好&#xff0c;最近我在联合瑞萨推广一个叫《致敬未来的攻城狮计划》&#xff0c;使用的就是RA2E1开发板&…

ES6技术总结与测试用例

一、介绍 ES6全称是ECMAScript ECMAScript 和 JavaScript 的关系 一个常见的问题是&#xff0c;ECMAScript 和 JavaScript 到底是什么关系&#xff1f; 要讲清楚这个问题&#xff0c;需要回顾历史。1996 年 11 月&#xff0c;JavaScript 的创造者 Netscape 公司&#xff0c…

连接数据库的方法和方式

前景说明&#xff1a; 在我们刚开始使用数据库的时候&#xff0c;发现只能在mysql编辑器里面使用sql语句来完成对数据库的操作&#xff0c;那我们怎么来通过Java来操控数据库呢&#xff1f;这个时候就有了JDBC的出现。 1.什么是JDBC JDBC 指java数据库连接&#xff08…

c#文案语音配图片一键生成视频

高手略过吧&#xff0c;功能太简单&#xff0c;我自己都不好意思。。 这个是我自己的需要&#xff0c;做产品类的短视频&#xff0c;东搞西搞剪辑啊啥的&#xff0c;特别麻烦&#xff0c;所以先搞这个最简版&#xff0c;以后再一步步丰富功能。 需求&#xff1a;几张图片生成…

网络安全行业0-5年规划,零基础如何入门网络渗透?

前言 网络安全这个行业优势有&#xff1a;需求量大&#xff0c;人才紧急&#xff0c;门槛低&#xff0c;工资高。对于许多未曾涉足IT行业「小白」来说&#xff0c;深入地学习网络安全是一件十分困难的事。 关于我 本人是一位90后奇安信驻场网络安全工程师。上海交通大学软件…

Web前端学习:章四 -- JavaScript初级(四)-- BOM

138&#xff1a;Object数据格式简介 1、object对象 JS中独有 的一种数据格式 名字可以随便取&#xff0c;值一般就那几种数据格式 139&#xff1a;BOM - JS跳转页面 BOM Browser Object Model&#xff1a;浏览器对象模型 使用JavaScript控制浏览器交互 控制浏览器里面的内…

【数据结构与算法】队列和栈的相互实现以及循环队列

目录&#x1f314;一.用队列实现栈&#x1f319;1.题目描述&#x1f319;2.思路分析&#x1f319;3.代码实现⛈二.用栈实现队列☔1.题目描述☔2.思路分析☔3.代码实现&#x1f308;三.实现循环队列&#x1f314;一.用队列实现栈 &#x1f319;1.题目描述 我们先看一下题目链接…

大数据技术之Hive SQL题库-初级

第一章环境准备1.1 建表语句hive>-- 创建学生表 DROP TABLE IF EXISTS student; create table if not exists student_info(stu_id string COMMENT 学生id,stu_name string COMMENT 学生姓名,birthday string COMMENT 出生日期,sex string COMMENT 性别 ) row format delim…

STM32学习(九)

IWDG的本质 Independent watchdog&#xff0c;即独立看门狗。 本质是&#xff1a;能产生系统复位信号的计时器。 递减的计数器。时钟由独立的RC振荡器提供&#xff08;不是来自于主时钟HSE或HSI&#xff09;&#xff0c;可在待机或者停止模式下运行。看门狗被激活后&#xff…

【云原生 • Docker】cAdvisor+Prometheus+Grafana 10分钟搞定Docker容器监控平台

文章目录cAdvisorPrometheusGrafana 10分钟搞定Docker容器监控平台cAdvisor部署Prometheus部署Grafana部署cAdvisorPrometheusGrafana 10分钟搞定Docker容器监控平台 cAdvisor(Container Advisor) 是 Google 开源的一个容器监控工具&#xff0c;可用于对容器资源的使用情况和性…

【网络安全必备知识】本地提权漏洞分析

0. 前言 CVE-2023-21752 是 2023 年开年微软第一个有 exploit 的漏洞&#xff0c;原本以为有利用代码会很好分析&#xff0c;但是结果花费了很长时间&#xff0c;难点主要了两个&#xff1a;漏洞点定位和漏洞利用代码分析&#xff0c;欢迎指正。 1. 漏洞简介 根据官方信息&a…

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

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

Python深度学习实战:人脸关键点(15点)检测pytorch实现

引言 人脸关键点检测即对人类面部若干个点位置进行检测&#xff0c;可以通过这些点的变化来实现许多功能&#xff0c;该技术可以应用到很多领域&#xff0c;例如捕捉人脸的关键点&#xff0c;然后驱动动画人物做相同的面部表情&#xff1b;识别人脸的面部表情&#xff0c;让机…

线程池的讲解和实现

&#x1f680;&#x1f680;&#x1f680;&#x1f680;&#x1f680;&#x1f680;&#x1f680;大家好,今天为大家带来线程池相关知识的讲解,并且实现一个线程池 &#x1f338;&#x1f338;&#x1f338;&#x1f338;&#x1f338;&#x1f338;&#x1f338;&#x1f338;…

DM的学习心得和知识总结(一)|DM数据库Real Application Testing之Database Reply实操(一)

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、达梦数据库产品及解决方案&#xff0c;点击前往 2、达梦技术文档&#xff0c;点击前往 3、武汉达梦数据库有限公司 官网首页&#xff0c;点击前往 1、本文内容全部…

OpenFeign#1 - FeignClient 是如何注册的?

文章目录EnableFeignClientsFeignClientsRegistrarregisterDefaultConfigurationregisterFeignClientsFeignClientFeignClientFactoryBeanFeignContextfeign(FeignContext)EnableFeignClients 该注解会导致 FeignClientsRegistrar 的注入. Retention(RetentionPolicy.RUNTIME…