C语言第9天,循环结构和多重选择switch
2022/9/15 23:17:13
本文主要是介绍C语言第9天,循环结构和多重选择switch,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、循环函数
1.while循环
和if一样,while也仅对其后一条语句产生效果,不能加分号。
while(测试条件)
{循环行为1;
循环行为2;
循环行为3;
...}
例题:求1+2+3+4+...+100
#include<stdio.h>
int main()
{
int i = 1, sum = 0;
while (i <= 100)
{
sum = i + sum;
i++;
}
return 0;
}
输出结果为i=101 sum=5050
在表达式求值过程中,除了0为假,其他数字都为真。
如果你的程序陷入了死循环,或者你想打断程序的执行,可以按组合键Ctrl+C让程序停止运行。
2.for循环
for循环为while循环更为紧凑的一种写法,只有细微不同
for(计数器设置初始值;循环条件;计数器更新)
{循环行为1;
循环行为2;
循环行为3;
...;}
依旧是上述例子
#include<stdio.h>
int main()
{
int i, sum = 0;
for (i = 1; i <= 100; i++)
sum = i + sum;
printf("i=%d sum=%d\n", i, sum);
return 0;
}
若不在for函数外定义i,那么i仅会当成计数器使用,循环结束后将失效
如果你仅仅想写一个死循环,你可以将3个条件都不写。或者写一个永远为真的表达式。以下3个均为死循环。但是while循环不能省略循环条件。
1.for(;;) 2.for(;100;0) 3.while(100)
循环行为 循环行为 循环行为
3.do while循环
与while不同的是,do while循环将先进行一次循环再判断是否符合循环条件
#include<stdio.h>
int main()
{
int x;
do
scanf("%d", & x);
while (x < 0);//在do while后面需要加;
printf("%d\n", x);
return 0;
}
该程序直到你输入正数或者0才结束
二、循环嵌套
#include<stdio.h>
int main()
{
for (char c = 'A'; c <= 'E'; c++)//外循环:字母由A到E
{
for (int i = 0; i <= 9; i++)//内循环:数字由1到9
printf("%c%d", c, i);
printf("\n");
}
return 0;
}
输出结果为
A0A1A2A3A4A5A6A7A8A9
B0B1B2B3B4B5B6B7B8B9
C0C1C2C3C4C5C6C7C8C9
D0D1D2D3D4D5D6D7D8D9
E0E1E2E3E4E5E6E7E8E9
三、循环辅助,break和continue
1.break
符合条件时,将打断循环直接跳出循环
输入密码123456,错误时重新输入
#include<stdio.h>
int main()
{
int password;
while (1)
{
scanf("%d", &password);
if (password == 123456)
break;//当密码输入正确时,跳出循环
printf("password error\n");
}
printf("welcome back");
return 0;
}
正常情况下,该while是一个无限循环,但break可以使它在满足条件下结束循环。
2.continue
跳过本次循环内容,并开始下一轮循环
#include<stdio.h>
int main()
{
for (int i = 1; i <= 20; i++)
{
if(i==6)
{
i = 15;
continue;
}
printf("%d ", i);
}
return 0;
}
输出结果为1 2 3 4 5 16 17 18 19 20,可以看出i=6时重新进行了循环
四、多重选择switch
例题:在航空通讯中,常把一个字母,读成一个对应的单词,要求编写一个程序,输入字母,输出对应单词
#include<stdio.h>
int main()
{char c;
scanf("%c",&c);
if(c=='a')
printf("alpha\n");
elseif(c=='b')
printf("bravo\n");
else if(c=='c')
printf("charlie\n");
else if(c=='d')
printf("delta\n");
else if(c=='e')
printf("echo\n");
else if(c=='f')
printf("foxtrot\n");
else if(c=='g')
printf("golf\n");
else
printf("i don't know\n");
return 0;}
可以看到if嵌套可以实现,但使用switch可以使代码更加清晰明了(虽然也不简便)
#include<stdio.h>
int main()
{
char c;
while (1)
{
scanf("%c", &c);
switch (c)
{
case'a':
printf("alpha\n");
break;//switch函数会使从符合条件处开始向下执行,会将下面的结果都打印出来,所以需要brake跳出函数
case'b':
printf("bravo\n");
break;
case'c':
printf("charlie\n");
break;
case'd':
printf("delta\n");
break;
case'e':
printf("echo\n");
break;
case'f':
printf("foxtrot\n");
break;
case'g':
printf("golf\n");
break;
default://可以没有default这一项
printf("i dont'no\n");
}
getchar();//吸收字符\n,使回车产生的\n被吸收,从而不会出现default
}
return 0;
}
switch(整型表达式)
{case整型常量1:
语句
case整型常量2:
语句
case整型常量3:
语句
case整型常量4:
语句
case整型常量5:
语句
default:语句
...}
字符型也是一种整型
这篇关于C语言第9天,循环结构和多重选择switch的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27文件掩码什么意思?-icode9专业技术文章分享
- 2024-12-27如何使用循环来处理多个订单的退款请求,代码怎么写?-icode9专业技术文章分享
- 2024-12-27VSCode 在编辑时切换到另一个文件后再切回来如何保持在原来的位置?-icode9专业技术文章分享
- 2024-12-27Sealos Devbox 基础教程:使用 Cursor 从零开发一个 One API 替代品 审核中
- 2024-12-27TypeScript面试真题解析与实战指南
- 2024-12-27TypeScript大厂面试真题详解与解析
- 2024-12-26怎么使用nsenter命令进入容器?-icode9专业技术文章分享
- 2024-12-26导入文件提示存在乱码,请确定使用的是UTF-8编码怎么解决?-icode9专业技术文章分享
- 2024-12-26csv文件怎么设置编码?-icode9专业技术文章分享
- 2024-12-25TypeScript基础知识详解