C 流程控制

判断

switch语句

switch语句可以嵌套

switch(expression){
    case constant-expression  :
       statement(s);
       break; /* 可选的 */// 如果这里没有break,则会继续执行下面一个case里的语句,直到遇见一个break或者switch语句结束
    case constant-expression  :
       statement(s);
       break; /* 可选的 */
  
    /* 您可以有任意数量的 case 语句 */
    default : /* 可选的 */
       statement(s);
}
#include <stdio.h>
 
int main ()
{
   /* 局部变量定义 */
   char grade = 'B';
 
   switch(grade)
   {
   case 'A' :
      printf("很棒!\n" );
      break;
   case 'B' :
   case 'C' :
      printf("做得好\n" );
     
   case 'D' :
      printf("您通过了\n" );
      break;
   case 'F' :
      printf("最好再试一下\n" );
      break;
   default :
      printf("无效的成绩\n" );
   }
   printf("您的成绩是 %c\n", grade );
 
   return 0;
}
//输出
做得好
您通过了
您的成绩是 B

三元运算符

Exp1 ? Exp2 : Exp3;

循环

for循环中三个表达式中的每一个都不是必要的,从而可以将某些表达式置空来构造无限循环

#include <stdio.h>
 
int main ()
{
   for( ; ; )
   {
      printf("该循环会永远执行下去!\n");
   }
   return 0;
}

whiledo……while的区别

while语句在执行循环主体前测试条件、而do……while在循环主题执行后测试条件,即循环主体会被至少执行一次

循环控制语句goto

goto语句允许把控制无条件的转移到同一函数内的被标记语句
但是不建议使用goto语句,因为他使得程序的执行流程变得难以跟踪,任何使用goto的语句都可以改写成为其他写法。
语法

goto label;
..
.
label: statement;
#include <stdio.h>
 
int main ()
{
   /* 局部变量定义 */
   int a = 10;

   /* do 循环执行 */
   LOOP:do#label为LOOP的语句
   {
      if( a == 15)
      {
         /* 跳过迭代 */
         a = a + 1;
         goto LOOP;#跳到label为LOOP的语句
      }
      printf("a 的值: %d\n", a);
      a++;
     
   }while( a < 20 );
 
   return 0;
}
posted @ 2019-10-21 21:57  凌晨四点的蓝  阅读(240)  评论(0编辑  收藏  举报