C语言之分支与循环语句

104 阅读3分钟

目录:

if分支语句
switch分支语句
while循环
for循环
do-while循环

1.if分支语句

语法:

    if(expression)
    {
      statement;
    }
    else if(expression)//python语法中是elif
    {
       statement;
    }
    else
    {
       statement;
    }

注意:

 悬空else问题:如果有多个ifelse,必须记住,else总是跟最接近的if匹配
 if-else if-else是一条语句

2.switch分支语句:

语法:

switch(expression)
{
 case value1:
             statement;
 case value2:
              statement;
 default:
              statement;
}

//上面代码中,根据表达式expression不同的值,执行相应的case分支。如果找不到对应的值,就执行default分支
//switch后的expression必须是整型表达式
//case后的值,必须是整型常量表达式
//在switch语句中case语句和default语句是没有顺序要求的,只要满足实际要求即可
//不过我们通常把default语句放在最后处理

注意:

   switch语句是一种特殊形式的if...else结构
   用于判断条件有多个结果的情况
   它把多重的else if改成更易用,可读性更好的形式

3.while循环:

语法:

   while(expression)
   {
       statement;
   }

注意:

    它与do-while循环是不同的,它先判断条件再执行语句
    do-while循环在下文有提及

4.for循环:

语法:

   for(expression1;expression2;expression3)
   {
    statement;
   }
   //表达式1--初始化部分
   //表达式2--判断部分
   //表达式3--调整部分

注意:

   for 循环的初始化,判断,调整三个部分是可以省略的
   for循环的判断部分如果省略的话,意味着判断恒成立

5.do-while循环

语法:

     do 
     {
         statement;
     }while(expression);

注意:

     do-while循环又称直到循环
     do-while循环先执行一遍循环体,然后判断

另:

break的作用是用于永久的终止循环,只要break被执行,直接就会跳出循环,继续往后执行
continue的作用是跳过本次循环中continue后边的代码,在for循环和while循环中有所差异
continue只能用于循环语句中,break既可以用在循环语句中,也可以用在switch分支语句中

练习代码-猜数字游戏:

        IDE:VS2022
        
        #define _CRT_SECURE_NO_WARNINGS 1
        #include<stdio.h>
        #include<stdlib.h>
        #include<Windows.h>

        //void menu()//打印菜单
        //{
        //   printf("***********\n");
        //   printf("***********\n");
        //   printf("**1.play***\n");
        //   printf("**0.exit****\n");
        //   printf("***********\n");
        //   printf("***********\n");
        //}
        //void game()//进行游戏
        //{
        //   int r = rand() % 100 + 1;//生成1-100的随机数
        //   int guess = 0;//自己猜的数字
        //   int count = 5;//限制猜数字的次数
        //   system("cls");//清除屏幕,可以省略
        //  while(count)
        //  {
        //   printf("你只有%d次机会了,",count);
        //   printf("请输入数字:>");
        //   scanf("%d", &guess);
        //   if (guess > r)
        //       printf("猜大了!\n");
        //   else if (guess < r)
        //       printf("猜小了!\n");
        //   else
        //    {
        //       printf("恭喜,猜对啦!\n");
        //       break;
        //     }
        //   count--;
        //   }
        //   if (count == 0)
        //   printf("真可惜,数字是%d\n",r);
        //}
        //int main()//程序入口
        //{
        //   int input = 0;
        //   具体详情可了解https://legacy.cplusplus.com/reference/cstdlib/srand/?kw=srand
        //   srand((unsigned int)time(NULL));//调用srand函数设置随机数的生成器

        //   do//采用do while循环是为了先执行一遍循环体
        //   {
        //    menu();//自定义一个menu()函数,减少主函数的篇幅
        //    printf("请选择:>");
        //    scanf("%d", &input);
        //    switch (input)//switch分支语句是为了做出选择,是否进行游戏
        //    {
        //     case 1:
        //           printf("猜数字游戏开始了,请做好准备!\n");
        //           game();//自定义一个game()函数,减少case1篇幅
        //           break;
        //     case 0:
        //	         printf("退出游戏!\n");
        //	   	 break;
        //     default:
        //	   	 printf("输入错误,请重新输入\n");
        //	   	 break;
        //      }
        //
        //    }while (input);
        //	
        //   return 0;
        //}

实现:

83e220a5136fc26a40d7471b4c76ab6.png f9614eecc52f343089fcb7289cb622f.png

写在最后:

水平有限,欢迎指正!