ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C语言第9天,循环结构和多重选择switch

2022-09-15 19:31:56  阅读:240  来源: 互联网

标签:case sum while 多重选择 break switch 循环 printf C语言


一、循环函数

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:语句

...}

字符型也是一种整型

 

 

 

 

 

标签:case,sum,while,多重选择,break,switch,循环,printf,C语言
来源: https://www.cnblogs.com/mmwl/p/16697701.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有