前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >c语言的三种语句

c语言的三种语句

作者头像
编程交流
发布于 2024-05-11 11:14:27
发布于 2024-05-11 11:14:27
33700
代码可运行
举报
文章被收录于专栏:编程编程
运行总次数:0
代码可运行

🌈个人主页:Rookie Maker 🔥 系列专栏:c语言 🏆🏆关注博主,随时获取更多关于IT的优质内容!🏆🏆


😀欢迎来到我的代码世界~ 😁 喜欢的小伙伴记得一键三连哦 ૮(˶ᵔ ᵕ ᵔ˶)ა

一、分支语句

1.if语句

(1)Tip:短路问题

(2)Tip:if和 eise if的嵌套

(3)Tip:悬空else问题

2.switch语句

二、循环语句

1.while语句

2.for语句

3.do-while循环

三、goto语句

四.猜数字游戏



前言:

梳理一下三大结构且做一个实践

C语⾔是结构化的程且序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种结构的组合

一、分支语句

1.if语句

举个例子:输入一个整数,判断是否为奇数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main()
{
    int num=0;
 scanf("%d",&num);
if(num%2=1)
{
printf("%d是奇数/n",&num);
}
return 0;
}

用一张图清楚的表达出这里面的逻辑,在c语言中0表示为假,非0表示为真,把这个逻辑用到奇数判断就行,判断奇数,首先为数学问题,模2为1则为奇数,然后根据编程思维写出来,利用if语句和scanf函数这个题很简单

else语句

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main({
int age = 0;
scanf("%d,&age");
if(age>=18)
{
printf("成年/n";
else
printf("未成年/n")}
return 0;
}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main()
{
int year=0;
scanf("%d",&year);
if(year%4=0&&year%100=0||year%400=0{
printf("这个年是闰年/n");
else
printf("不不不/n";
}
return 0;
}

(1)Tip:短路问题

短路问题

里面要特别注意&&这个操作符,记住左边一旦为真,左边即是0

注意:if 语句只能控制⼀条语句,就是 printf("成年了\n"); ,if语句为真,则打印成年了,

if语句为假,则不打印,对于 printf("可以谈恋爱了\n"); 是独⽴存在的,不管if语句的条件的真

假,都会被执⾏。那如果我们要if语句同时控制2条语句,怎么办呢?那就要使⽤ {} 将代码括起来, else 后也可以跟上⼤括号。

(2)Tip:if和 eise if的嵌套

if else语句中else中能穿插 if吗?答案是 能的。这就是我接下来介绍的if嵌套,构成多重判断。

要求输入一个整数,判断输入的整数是0,还是正数或者负数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
	int num = 0;
	//输入
	scanf("%d", &num);
	//判断
	if (num == 0)
		printf("输入的值是0\n");
	else if (num > 0)
{
			printf("输入的值是正数\n");
}
		else{

			printf("输入的值是负数\n");	
}	
return 0;
}

输入一个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:负数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main({
int num=0;
scanf("%d",&num);
if(num>0)
{
if(num%2==0)
printf("偶数/n");
else
printf("奇数/n");
}
else
{
Printf("负数/n")}
return 0;
}
(3)Tip:悬空else问题

有的人又要问了:if后不加{}else后不加{}能行吗?if后不加{}else后不加{}能行吗?else总跟最接近的if匹配这样很可能会构成逻辑错误,会把相近的语句进行对齐:悬空else问题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main()
{
 int a = 0;
 int b = 0;
if(a==1if(b==2)
printf("hehe/n");
else
printf("haha/n")
return 0;
)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
 int a = 0;
 int b = 2;
 if(a == 1)
 {
 if(b == 2)
 printf("hehe\n");
 }
 else
 {
 printf("haha\n");
 }
 return 0;
}

如果希望else确实和第⼀个if匹配,可以这样修改。

2.switch语句

1.除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。

2.switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。 它把多重

的 else if 改成更易⽤、可读性更好的形式

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
switch (expression) {
 case value1: statement
 case value2: statement
 default: statement
}

上⾯代码中,根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值,就执行defult的形式。

注:

• switch 后的 expression 必须是整型表达式

• case 后的值,必须是整形常量表达式

练习:输⼊任意⼀个整数值,计算除3之后的余数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
 int n = 0;
 scanf("%d", &n);
 switch(n%3)
 {
 case 0:
 printf("整除,余数为0\n"); 
 break;
 case 1:
 printf("余数是1\n"); 
 break;
 case 2:
 printf("余数是2\n"); 
 break;
 }
 return 0;
}

前⾯的代码中,如果我们去掉case语句中的break,会出现什么情况呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
 int n = 0;
 scanf("%d", &n);
 switch(n%3)
 {
 case 0:
 printf("整除,余数为0\n"); 

 case 1:
 printf("余数是1\n"); 
 
 case 2:
 printf("余数是2\n"); 
 
 }
 return 0;
}

我们发现,7除以3本来余数是1,但是我们发现程序运⾏的结果多了⼀⾏“余数是2”的打印

原因是 switch 语句也是分⽀效果的,只有在 switch 语句中使⽤ break 才能在跳出 switch 语

句,如果某⼀个 case 语句的后边没有 break 语句,代码会继续往下执⾏,有可能执⾏其他 case

语句中的代码,直到遇到 break 语句或者 switch 语句结束。就⽐如上⾯的代码就执⾏了 case2中的语句

在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,⽐如 switch 后的表达式中的值⽆法匹

配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加上default

switch 后边的 expression 的结果不是 value1 ,也不是 value2 的时候,就会执⾏ default ⼦句

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	default :
			System.out.println("default");
			break;

case和default没有先后的关系

二、循环语句

1.while语句

⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语句,语句执⾏完后再继续判断,是否进⾏下⼀次判断。

示例: 在屏幕上打印1~10的值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
 printf("%d ", i);
 i = i+1;
 }
 return 0;
}

while里面的break和continue

break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环。

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
 if(i == 5)
 break;//当i等于5后,就执⾏break,循环就终⽌了
 printf("%d ", i);
 i = i+1;
 }
 return 0;
}

​为什么会出现这种结构?

打印了1,2,3,4后,当i等于5的时候,循环到 break 的地⽅终⽌,不再打印,不再循环。

所以 break 的作⽤就是永久的终⽌循环,只要 break 被执⾏, break 外的第⼀层循环就终⽌了。

那以后我们在循环中,想在某种条件下终⽌循环,则可以使⽤ break 来完成我们想要的效果。

而for循环是先判断再进表达式,最后在调整。·

continue 是继续的意思,在循环中的作⽤就是跳过本次循环中 continue 后边的代码,继续进⾏

下⼀次循环的判断

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
 if(i == 5)
 continue;
 //当i等于5后,就执⾏continue,直接跳过continue的代码,去循环的判断的地方
 printf("%d ", i);
 i = i+1;
 }
 return 0;
}

到这⾥我们就能分析出来, continue 可以帮助我们跳过某⼀次循环 continue 后边的代码,直接

到循环的判断部分,进⾏下⼀次循环的判断,如果循环的调整是在 continue 后边的话,可能会造成死循环

2.for语句

for 循环是三种循环中使⽤最多的, for 循环的语法形式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. for(表达式1; 表达式2; 表达式3)
2. 语句;

表达式1 ⽤于循环变量的初始化

表达式2 ⽤于循环结束条件的判断

表达式3 ⽤于循环变量的调整

示例图:

练习:在屏幕上打印1~10的值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 #include <stdio.h>
2
3 int main()
4 {
5 int i = 0;
6 for(i=1; i<=10; i++)
7 {
8 printf("%d ", i);
9 }
10 
11 return 0;
}

运行结果 1.2.3.4.5.6.7.8.9.10

for和while的区别

​示例

计算1~100之间3的倍数的数字之和

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
 int i = 0;
 int sum = 0;
 for(i=1; i<=100; i++)
 {
 if(i % 3 == 0)
 sum += i;
 }
 printf("%d\n", sum);
 return 0;
}

如果能直接产⽣3的倍数的数字就省去了多余的循环和判断

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
 int i = 0;
 int sum = 0;
 for(i=3; i<=100; i+=3)
 {
 sum += i;
 }
 printf("%d\n", sum);
 return 0;
}

break和continue

其实和 while 循环中的 break ⼀样, for 循环中的 break 也是⽤于终⽌循环的,不管循环还需

要循环多少次,只要执⾏到了 break ,循环就彻底终⽌

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
 int i = 1;
 for(i=1; i<=10; i++)
 {
 if(i == 5)
 break;
 printf("%d ", i);
 }
 return 0;
}

运行结果为1.2.3.4.

break 的作⽤是永久的终⽌循环,未来我们在某个条件发⽣的时候,不想再继续循环的时候,就可以使⽤ break 来完成。

continue

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
 int i = 1;
 for(i=1; i<=10; i++)
 {
 if(i == 5)
 continue;//这⾥continue跳过了后边的打印,来到了i++的调整部分
 printf("%d ", i);
 }
 return 0;
}

打印的结果为1.2.3.4.5.6.7.8.9.10

  • while遇见continue是到判断了
  • for遇见continue是到调整部分了

3.do-while循环

在循环语句中 do while 语句的使⽤最少,它的语法如下:

do

语句;

while ( 表达式 ) ;

while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳

出循环; ⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表 达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。、

示例图

do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅

示例 在屏幕上打印1~10的值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
 int i = 1;
 do
 {
 printf("%d ", i);
 i = i + 1;
 }while(i<=10);
 
 return 0;
}

⼀般 do while 使⽤在循环体⾄少被执⾏⼀次的场景下,所以较少⼀些。

但有的时候得用do while循环最好

输⼊⼀个正整数,计算这个整数是⼏位数?

这⾥并⾮必须使⽤ do while 语句,但是这个代码就⽐较适合使⽤ do while 循环,因为n即使是

0,也是1位数,要统计位数的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
 int n = 0;
 scanf("%d", &n);
 int cnt = 0;
 do
 {
 cnt++;
n=n/10;
} while (n);
printf("%d\n", cnt);
return 0;
}

do.while 语句中的 break 和 continue 的作⽤和 while 循环中⼏乎⼀模⼀样 ,这里就不赘述了

三、goto语句

C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数

内跳转到设置好的标号处。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
 printf("hehe\n");
 goto next:
 printf("haha\n");
 
next:
 printf("跳过了haha的打印\n");
return 0;
}

goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们的建 议是能不⽤尽量不去使⽤;但是 goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出 使⽤ goto 就⾮常的⽅便了

四.猜数字游戏

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()//设置一个函数,具有返回值
{
	printf("*************************/n");
	printf("********1.play 0.exit/n");
	printf("*******************************/n");
}
void game()
{
	int r = rand() % 100 + 1;//生成一个随机数,为了提高代码运行的效率,所以缩短范围,采用模100+1出来的为0-100之间的数
	int guess = 0;
 
	
	while (1)//采用while语句进入循环
	{
		printf("猜一下数字:");
		scanf("%d" ,& guess);
		//使用if语句进行判断
		if (guess > r)
		{
			printf("猜大了/n");
		}
		else  if (guess < r)
		{
			printf("猜小了/n");
		}
		else
		{
			printf("恭喜你,你成功了");
			break;
		}
	}
}
//开始游戏
	int main()
	{
		int input = 0;//开始游戏,需要值的启动,设置初始化变量)
		//因为随机数生成与种子有关,所以采用time返回值为时间戳,种子会一直变化,unsigned进行强制转换为整型
		srand((unsigned int)time(NULL));
 
		//一开始就要进行循环,选择do while语句
		
		{
			menu();//引入一个函数,就是菜单
			printf("请选择数字");
			scanf("%d", &input);//输出一个值,在vs中要么用scanf-s,要不然在第一行定义
			switch (input)//使用case语句
			{
			case 1:
 
				game();
				break;//跳出循环
			case 0:
				printf("游戏结束,请去打王者荣耀");
				break;
			default://其他情况
				printf("输入错误,重新输入/n");
					break;
			}
		} while (input);
		return 0;
	}

🎁🎁🎁今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是我前进的动力!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-04-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
七大Web应用程序安全最佳实践
2020年,CVE Details的数据显示,平均每天发现50个新的漏洞。因此,采取防护措施保护Web应用程序对企业安全的至关重要。本文将探索七种最佳实践给予Web应用程序最安全的保护。
Anita
2021/10/27
1.3K0
七大Web应用程序安全最佳实践
100 个网络安全基础知识
网络安全是指采取必要措施,防范对网络的攻击、侵入、干扰、破坏和非法使用以及意外事故,使网络处于稳定可靠运行的状态,保障网络数据的完整性、保密性、可用性。(参考《中华人民共和国网络安全法》)
ICT系统集成阿祥
2025/04/14
310
100 个网络安全基础知识
安全防护保障建设-从网站到政务信息化项目
网站和政务信息化项目的安全防护极其重要,这是因为它们往往存储和处理大量的敏感信息,包括个人数据、商业机密、政府文件等,这些信息的泄露或被不当使用都会带来严重的后果。
Towserliu
2024/07/14
1690
安全防护保障建设-从网站到政务信息化项目
中小企业,应该关注哪些网络安全知识?
这是一个互联网时代,对于任何一个企业而言,我们在做企业网站运营的时候,都应该注意自己的网站安全性,这是毋庸置疑的。
蝙蝠侠IT
2021/01/25
4620
中小企业,应该关注哪些网络安全知识?
从黑客那里保护公司网站的12个技巧
通常您的网站开放运行如同无需锁门但依然安全开放的办公室一样:因为大多数人不会仅仅步入并访问您的办公室就洞察到您所有的数据信息。偶尔您会发现有不怀好意的人进入并偷走你的数据。这就是为什么您的办公室门和保险箱有锁。
Beryl Chao
2018/08/08
7950
如何提高美国虚拟主机的安全性?——九个简单有效的方法
美国虚拟主机是许多中小型企业和个人使用的一种经济实惠的托管服务。但是,虚拟主机也有一些安全风险,比如被黑客攻击或数据泄露。为了保护你的网站和数据,这里有九个简单有效的方法来提高美国虚拟主机的安全性。
一枕寒凉
2023/04/12
9820
企业怎么做好服务器安全防护?
大家都知道,服务器对于所有企业都必不可少,服务器的安全关系着公司整个网络以及所有数据的安全。所以,服务器的安全管理是企业必须重点关注的。
墨者安全科技
2019/12/20
2.9K0
企业怎么做好服务器安全防护?
MongoDB安全权威指南
想象一下这样的场景:当工作劳累了一天,你已经准备好收拾行李回家的时候,下面这句话突然冒了出来:
MongoDB中文社区
2019/05/24
1.1K0
物联网如何解决安全防护问题?
在互联网时代的发展下,现如今已经快速跨入了物联网时代。而物联网就是“物物相连的互联网”。物联网的核心和基础仍然是互联网,是通过互联网进行延伸和扩展后的网络。因此网络安全防护的形势依然严峻异常。任何能够连接互联网的设备都潜藏着安全漏洞。而且随着物联网的设备增加,会造就大量的僵尸网络存在。以此为黑客攻击提供了便捷有利的条件。
墨者安全科技
2019/07/27
5960
物联网如何解决安全防护问题?
2024 企业网络安全与风险CheckList
本指南提供了详细的网络安全清单和示例,以帮助您建立强大的保护并最大程度地减少漏洞。
星尘安全
2024/09/17
1690
2024 企业网络安全与风险CheckList
Vulnerable SAP NetWeaver Path Observed - Information Disclosure (CVE-2016-2388)
"ET WEB_SPECIFIC_APPS Vulnerable SAP NetWeaver Path Observed - Information Disclosure (CVE-2016-2388)"
公众号图幻未来
2023/10/13
2030
Vulnerable SAP NetWeaver Path Observed - Information Disclosure (CVE-2016-2388)
选择美国虚拟主机需注意的安全问题
在选择美国虚拟主机时,安全性应该是您首要关注的问题。虚拟主机通常是网站托管的最便宜和最方便的方式之一,但也存在安全问题。在本文中,我们将讨论一些您应该注意的安全问题,并提供一些解决方案来保护您的网站。
一枕寒凉
2023/04/24
2.1K0
WordPress - Attempted Check for Malicious posts-layout解决方案分享
在WordPress中,"Attempted Check for Malicious posts-layout"(尝试检查恶意的posts-layout)
公众号图幻未来
2023/10/08
3620
WordPress - Attempted Check for Malicious posts-layout解决方案分享
稳定性与性能的完美融合:选择好用的美国主机,网站畅行无阻!
在当今数字时代,拥有一个高性能、稳定可靠的网站对于个人和企业来说至关重要。选择一家优质的网络主机提供商是确保网站畅行无阻的关键因素之一。本文将探讨如何选择好用的美国主机,并强调稳定性与性能之间的重要关系。
一只扑棱蛾子
2023/05/29
4140
稳定性与性能的完美融合:选择好用的美国主机,网站畅行无阻!
如何做好云安全防护
随着云计算技术的迅猛发展和普及,越来越多的企业和个人选择将数据和业务应用迁移到云平台,以享受其带来的高效、便捷和可扩展性。然而,云环境的复杂性和开放性也带来了前所未有的安全挑战。如何确保云环境中的数据安全,成为了每一个云用户必须面对的问题。今天德迅云安全就来分享下如何做好云安全防护,有哪些常见的防护方案,一起共筑云环境的安全。
德迅杨德俊
2024/05/24
2130
网络安全:保护数字时代的堡垒
引言: 在数字化时代,网络安全的重要性日益凸显。它不仅关系到个人隐私保护,还涉及国家安全和经济发展。随着技术的发展,网络安全的威胁也在不断进化,从个人设备到企业网络,再到国家基础设施,都面临着严峻的安全挑战。随着技术的发展,网络安全的威胁也在不断进化,我们必须采取行动来保护我们的数字世界。
正在走向自律
2024/12/18
3930
网络安全:保护数字时代的堡垒
注意以下5种黑客攻击小企业的方式
在过去的几年中发生了如此多的备受瞩目的黑客攻击和网络攻击,很容易陷入小企业很少成为攻击目标。毕竟,大企业可以提供更多,特别是涉及个人或敏感数据时 - 对吗?
双愚
2018/08/13
5330
这几种方法可让WordPress网站安全性大大提升
WordPress网站的安全性,常被人诟病,甚至有人直接给WordPress网站下了结论“WordPress网站不安全”、“WordPress网站安全性差”等等。如果你的WordPress网站不做任何的安全性设置,那确实不安全。必要的安全工作还是要做的,就比如,你家的家门不锁门,你家也大概率是不安全的,你家的东西也有可能被盗。
WordPress爱好者
2024/06/16
1670
这几种方法可让WordPress网站安全性大大提升
web网络安全防护方案
在Web信息系统高速发展的今天,Web信息系统的各种各样的安全问题已暴漏在我们面前。Web信息系统各种安全问题潜伏在Web系统中,Web系统的时时刻刻遭受各种攻击的安全威胁。这里就跟大家聊聊web网络安全防护方案。
德迅云安全-李康强
2023/06/25
4090
网站被攻击了怎么恢复?如何在被攻击后第一时间接入高防恢复正常访问?
网站受到攻击的原因是多种多样的,包括技术漏洞、人为疏忽、社会工程学等各种因素。保护网站的安全需要综合运用技术手段
德迅云安全--陈琦琦
2023/12/20
3440
推荐阅读
相关推荐
七大Web应用程序安全最佳实践
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档