分支语句和循环语句

时间:2022-10-09 19:06:57
  1. 分支(条件判断)语句
  • if(搭配else使用)
  • switch
  1. 循环语句
  • while
  • for
  • do while
  1. 转向语句
  • goto


  1. if判断语句

if是一种判断语句通常搭配else来使用,如果表达式为真,则执行语句,如果表达式为假,则结束语句,或是跳至else语句。(0表示假,非0表示真)

需要注意的是:else是和它离最近的if匹配的。


  1. switch语句

switch语句常用于多分支的情况,switch语句要想实现多分支,必须搭配break使用才能实现真正的多分支。

switch()
{
case 1:
语句:
break;
case 2:
语句:
break;
default:
语句:
}

break为结束或跳出语句,default和else语句的作用一样。


  1. while循环语句
while(表达式)//当表达式条件满足,停止循环
循环语句;

while语句也可以搭配break和continue使用。

break在while循环中的作用:只要循环中遇到break,就停止后面的所有循环,直到循环结束,while中的break是永久终止循环。

continue在while循环中的作用:continue是用于终止本次循环,也就是continue后面的代码不会执行,而是直接跳转到while语句中的判断部分,进行下一次的循环判断。


  1. for语句

for语句和while语句比较相似,执行的流程一样

for(表达式1;表示2;表达式3)
//表达式1赋值,表达式2判断,表达式3执行
循环语句;

for语句也可以搭配break和continue使用,意义和在while循环语句中一样。


  1. do while语句
do
循环语句;
while(表达式);

do while循环至少要循环一次,使用的场景有限,所以不经常使用。

do while中的break和continue与while中的意义也是一样的


  1. 另外附上两个好玩的程序
  • 猜数字
//猜数字
#include <stdlib.h>
#include <time.h>

void menu()
{
printf("****************************************\n");
printf("***** 1.开始 0.退出 *****\n");
printf("****************************************\n");
}

void game()
{
//1.生成一个随机数
int ret = 0;
int guess = 0;//接收生成的随机数
ret = rand()%100+1;//生成一个1-100之间的数
//printf("%d\n", ret);
//2.猜数字
while (1)
{
printf("请猜数字:>");
scanf_s("%d", &guess);
if (guess > ret)
{
printf("猜大了\n");
}
else if (guess < ret)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
int main()
{
srand((unsigned int)time(NULL));//用时间戳来设置一个随机数

int input = 0;
do
{
menu();
printf("请选择>:");
scanf_s("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
break;
}

} while (input);
return 0;
}
  • 电脑关机程序

while循环实现

#include <stdio.h>
#include <stdlib.h>
int main()
{
char input[20] = { 0 };
system("shutdown -s -t 60");
while (1)
{
printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
scanf("%s", input);
if (0 == strcmp(input, "我是猪"))
{
system("shutdown -a");
break;
}
}
return 0;
}

goto语句实现

#include<stdio.h>
#include<stdlib.h>

int main()
{
char input[10] = { 0 };
system("shutdown -s -t 60");
again:
printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
scanf("%s", input);
if (0 == strcmp(input, "我是猪"))
{
system("shutdown -a");
}
else
{
goto again;
}
return 0;
}