c 语言跳转回switch,C 语言 - 分支、跳转和循环语句

if 条件判断语句

if 语句结构

格式:

if (表达式)

{

语句;

}

如果表达式成立,就执行大括号中的语句;否则跳过该 if 语句

#include

int main()

{

int num;

printf("请输入一个数字:");

scanf("%d", &num);

if (num > 10)

{

printf("该数字大于 10\n");

}

return 0;

}

运行结果

05716c3bb912a14872f6f10621490d41.png

12 符合 if 语句的条件,所以执行大括号中的语句

8bbe54a050f4d47d8e59570471a15520.png

6 不符合 if 语句的条件,所以跳过该 if 语句

if - else 结构

格式:

if (条件)

{

语句 1;

}

else

{

语句 2;

}

如果 if 语句的条件成立执行语句 1,否则执行语句 2

#include

int main()

{

int num;

printf("请输入一个数字:");

scanf("%d", &num);

if (num > 10)

{

printf("%d 大于 10\n", num);

}

else

{

printf("%d 不大于 10\n", num);

}

return 0;

}

运行结果

465aa44c6df7aba8af30683f5afdb9f1.png

fda955e3612b5cd7c21feb46f0ad6cae.png

if - else if - else 语句结构

格式:

if (条件 1)

{

语句 1;

}

else if (条件 2)

{

语句 2;

}

else if (条件 3)

{

语句 3;

}

else

{

语句 4;

}

如果条件 1 成立,则执行语句 1;如果条件 2 成立,则执行语句 2;如果条件 3 成立,则执行语句 3;条件 1,2,3 都不成立,执行语句 4

#include

int main()

{

int num;

printf("请输入成绩:");

scanf("%d", &num);

if (num >= 85)

{

printf("你的成绩为A\n");

}

else if (num < 85 && num >= 75)

{

printf("你的成绩为B\n");

}

else if (num < 75 && num >= 60)

{

printf("你的成绩为C\n");

}

else

{

printf("你的成绩为D\n");

}

return 0;

}

运行结果

6a6862a742b018e033d951379e4e7454.png

switch 语句

格式:

switch (表达式)

{

case 常量表达式 1 : 语句 1;

case 常量表达式 2 : 语句 2;

case 常量表达式 3 : 语句 3;

case 常量表达式 4 : 语句 4;

default : 语句 5;

}

程序会执行表达式的值相对应的常量表达式的语句,如果全没有的话,会执行 default 的语句 5

#include

int main()

{

int a, b;

printf("请输入两个数字 1 或 2:");

scanf("%d %d", &a, &b);

switch (a + b)

{

case 2: printf("结果为 2\n");

case 3: printf("结果为 3\n");

case 4: printf("结果为 4\n");

default: printf("结果未知\n");

}

return 0;

}

运行结果

d41134847c838bd10845e7d6372d1f0c.png

0db43160b3022184d6e7a939755f6285.png

405ee6843ac4b07f24f3af12641b8016.png

程序执行表达式的值相对应的常量表达式的语句之后,继续执行了之后的语句,这并不是我们想要的结果

这需要用到 break 来改进

#include

int main()

{

int a, b;

printf("请输入两个数字 1 或 2:");

scanf("%d %d", &a, &b);

switch (a + b)

{

case 2: printf("结果为 2\n");break;

case 3: printf("结果为 3\n");break;

case 4: printf("结果为 4\n");break;

default: printf("结果未知\n");break;

}

return 0;

}

运行结果

73d09a06f63d7f22e29f6736bcccda49.png

25e865e4c59752f9f649bc5e3f09311e.png

90455ed448bd8d64008ce781249e591b.png

f9724e7e41498ba9c03b3c44e25fb122.png

while 语句

格式:

while (条件)

{

语句;

}

如果条件成立,则会一直执行大括号中的语句

#include

int main()

{

int i = 0, count = 0;

while (i <= 100)

{

count = count + i;

i ++;

}

printf("结果为 %d \n", count);

return 0;

}

运行结果

4817f63b26650271a26363be1d4dddd5.png

#include

int main()

{

int count = 0;

printf("请输入一行英文字符:");

while (getchar() != '\n')

{

count++;

}

printf("该行英文字符有 %d 个字符\n", count);

return 0;

}

运行结果

aa23818b55e28ce7ee2497b05174fb43.png

do - while 语句

格式:

do

{

语句

}

while (条件);

执行大括号中的语句,直到条件不成立,while 语句后有个分号

大括号中的语句至少会被执行一次

#include

int main()

{

int i = 0, sum = 0;

do

{

sum = sum + i;

i ++;

}

while (i <= 100);

printf("结果的值为 %d\n", sum);

return 0;

}

运行结果

7a0e83394b618a39c7dbccaf0475293d.png

for 语句

格式:

for (表达式 1; 表达式 2; 表达式 3)

{

循环体

}

表达式 1 为循环初始化表达式,表达式 2 为循环条件表达式,表达式 3 为循环调整表达式

#include

int main()

{

int i;

for (i = 0; i < 10; i++)

{

printf("Hello World!\n");

}

return 0;

}

运行结果

653f79d8701923f985081decae5abaa7.png

表达式 1、表达式 2、表达式 3 可以安装需要进行省略,但是分号不能省略

#include

int main()

{

int i = 0;

for (;i < 10;)

{

printf("Hello World!\n");

i++;

}

return 0;

}

运行结果

fddc5cd3e57d42b7fb55d8d298cb2d5a.png

表达式 1、2、3 都省略的话:for (;;) 就和 while (1) 一样

表达式 1、3 可以是用逗号分隔的多个表达式

for (i = 0, j = 10; i < j; i++)

C99 运行在表达式 1 中定义变量,定义的变量的作用域只在循环中

for (int i = 0; i < 10; i++)

使用 for 循环嵌套实现九九乘法表

#include

int main()

{

int i, j;

for (i = 1; i <=9; i++)

{

for (j = 1; j <= i; j++)

{

printf("%d * %d = %-2d", i, j, i * j);

}

putchar('\n');

}

return 0;

}

运行结果

e901c727d47202daf5cd6761be46f601.png

break 语句

结束当前循环

#include

int main()

{

int i, j;

for (i = 0; i < 10; i++)

{

for (j = 0; j < 10; j++)

{

if (j == 3)

{

break;

}

}

}

printf("i = %d, j = %d\n" ,i, j);

return 0;

}

运行结果

da621a5a2ba417953f26e02d0d1a1204.png

当 j 等于 3 时,j 的循环就因为 break 结束了,只剩下 i 的循环

continue 语句

跳过当前循环,继续下一次循环

#include

int main()

{

int ch;

printf("请输入一个字符串:");

while ((ch = getchar()) != '\n')

{

if (ch == 'w')

{

continue;

}

putchar(ch);

}

putchar('\n');

return 0;

}

运行结果

8311de4c6a695c4dcfda86cee84e17cd.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值