首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >switch 语句,while 循环,for 循环和do while循环

switch 语句,while 循环,for 循环和do while循环

作者头像
ahao
发布2024-03-19 18:43:18
发布2024-03-19 18:43:18
1.3K00
代码可运行
举报
文章被收录于专栏:学习学习
运行总次数:0
代码可运行

switch 语句

switch 语句是⼀种特殊形式的 if…else 结构,⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易⽤、可读性更好的形式。 例如:

代码语言:javascript
代码运行次数:0
运行
复制
#include<stdio.h>
int main()
{
		int n;
	switch(n)
	{
	case number:
	statement;
		case number:
	statement;
		case number://注意,case和后面的number中间有个空格
	statement;
	default:
	statment;//此处的number只能为整型数值
	}
	 return 0;
}

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

输入一个0~7的数,输出“星期 * ”:

代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>
int main()
{
 int day = 0;
 scanf("%d", &day);
 switch(day)
 {
 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;
 }
 return 0;
}

每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句,如果不加break,输出结果会不一样:

如果case的不同值有相同结果,就可以写成以下:

代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>
int main()
{
 int day = 0;
 scanf("%d", &day);
 
 switch(day)
 {
 case 1:
 case 2:
 case 3:
 case 4:
 case 5:
 printf("⼯作⽇\n");
 break;
 case 6:
 case 7:
 printf("休息⽇\n");
 break;
 default:
 	printf("输入错误\n");
 	break;
 	}
 return 0;
}

如果输入数字8,就会执行default分支:

在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实际需求的就可以。

while 循环

while 语句的语法结构和 if 语句⾮常相似。 但是也有着极大的区别,while语句是可以实现循环效果的: if 语句

代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>
int main()
{
 if(1)
 printf("hehe\n"); //if后边条件满⾜,打印⼀次hehe
 return 0;
}

while 循环

代码语言:javascript
代码运行次数:0
运行
复制
/代码2
#include <stdio.h>
int main()
{
 while(1)
 printf("hehe\n"); //while后边的条件满⾜,死循环的打印hehe
 return 0;
}

while循环⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语句,语句执⾏完后再继续判断,是否进⾏下⼀次判断。 输⼊⼀个正的整数,逆序打印这个整数的每⼀位 例如: 输⼊:1234,输出:4 3 2 1 输⼊:521,输出:1 2 5

代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>
int main()
{
 int n = 0;
 scanf("%d", &n);
 while(n)
 {
 printf("%d ", n%10);//此处输出的n%10就是n的个位数
 n=n/10;//去掉个位数的n再次返回执行
 }
 return 0;
}

for 循环

for 循环的使用频率是最高的。

代码语言:javascript
代码运行次数:0
运行
复制
for(表达式1;表达式2;表达式3)
语句;
此处的表达式1用于初始化,
表达式2用于⽤于循环结束条件的判断,
表达式3 ⽤于循环变量的调整

例如,用for 循环算出一百以内能整除3的数之和:

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

do while 循环

while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳出循环;⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。 在 do while 循环中先执⾏语句,执⾏完语句,在去执⾏判断表达式,判断表达式的结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅。 练习: 输⼊⼀个正整数,计算这个整数是⼏位数? 例如: 输⼊:1234 输出:4 输⼊:12 输出:2

代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>
int main()
{
 int n = 0;
 scanf("%d", &n);
 int cnt = 0;
 do
 {
 cnt++;//n即使是0,也是1位数,要统计位数的
 n = n / 10;
 } while (n);
 printf("%d\n", cnt);
 return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • switch 语句
  • while 循环
  • for 循环
  • do while 循环
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档