7、【C语言基础】判断/循环语句

C 判断

判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。

C 语言把任何非零非空的值假定为 true,把null 假定为 false

下面是大多数编程语言中典型的判断结构的一般形式:

判断语句

C++ 编程语言提供了以下类型的判断语句。

语句描述
if 语句 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。
if...else 语句 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。
嵌套 if 语句 您可以在一个 ifelse if 语句内使用另一个 ifelse if 语句。
switch 语句 一个 switch 语句允许测试一个变量等于多个值时的情况。
嵌套 switch 语句 您可以在一个 switch 语句内使用另一个 switch 语句。

【示例】嵌套if语句

 1 #include <iostream>
 2 using namespace std;
 3  
 4 int main ()
 5 {
 6    // 局部变量声明
 7    int a = 100;
 8    int b = 200;
 9  
10    // 检查布尔条件
11    if( a == 100 )
12    {
13        // 如果条件为真,则检查下面的条件
14        if( b == 200 )
15        {
16           // 如果条件为真,则输出下面的语句
17           cout << "a 的值是 100,且 b 的值是 200" << endl;
18        }
19    }
20    cout << "a 的准确值是 " << a << endl;
21    cout << "b 的准确值是 " << b << endl;
22  
23    return 0;
24 }

【示例】switch嵌套

 1 #include <stdio.h>
 2  
 3 int main ()
 4 {
 5    /* 局部变量定义 */
 6    int a = 100;
 7    int b = 200;
 8  
 9    switch(a) {
10       case 100: 
11          printf("这是外部 switch 的一部分
");
12          switch(b) {
13             case 200:
14                printf("这是内部 switch 的一部分
");
15          }
16    }
17    printf("a 的准确值是 %d
", a );
18    printf("b 的准确值是 %d
", b );
19  
20    return 0;
21 }

? : 运算符(三元运算符)

三元运算符的一般形式如下:

1 Exp1 ? Exp2 : Exp3;

其中,Exp1、Exp2 和 Exp3 是表达式。请注意,冒号的使用和位置。

? 表达式的值是由 Exp1 决定的。如果 Exp1 为真,则计算 Exp2 的值,结果即为整个 ? 表达式的值。如果 Exp1 为假,则计算 Exp3 的值,结果即为整个 ? 表达式的值。

 1 #include<stdio.h>
 2  
 3 int main()
 4 {
 5     int num;
 6  
 7     printf("输入一个数字 : ");
 8     scanf("%d",&num);
 9  
10     (num%2==0)?printf("偶数"):printf("奇数");
11 }

C 循环

有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。

编程语言提供了更为复杂执行路径的多种控制结构。

循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的流程图:

循环类型

C 语言提供了以下几种循环类型。点击链接查看每个类型的细节。

循环类型描述
while 循环 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。
for 循环 多次执行一个语句序列,简化管理循环变量的代码。
do...while 循环 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。
嵌套循环 您可以在 while、for 或 do..while 循环内使用一个或多个循环。

 【示例】for循环嵌套

 1 #include <stdio.h>
 2  
 3 int main ()
 4 {
 5    /* 局部变量定义 */
 6    int i, j;
 7    
 8    for(i=2; i<100; i++) {
 9       for(j=2; j <= (i/j); j++)
10         if(!(i%j)) break; // 如果找到,则不是质数
11       if(j > (i/j)) printf("%d 是质数
", i);
12    }
13  
14    return 0;
15 }

【示例】while循环嵌套

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int i=1,j;
 5     while (i <= 5)
 6     {
 7         j=1;
 8         while (j <= i )
 9         {
10             printf("%d ",j);
11             j++;
12         }
13         printf("
");
14         i++;
15     }
16     return 0;
17 }

【示例】do-while循环嵌套

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int i=1,j;
 5     do
 6     {
 7         j=1;
 8         do
 9         {
10             printf("*");
11             j++;
12         }while(j <= i);
13         i++;
14         printf("
");
15     }while(i <= 5);
16     return 0;
17 }

循环控制语句

循环控制语句改变你代码的执行顺序。通过它你可以实现代码的跳转。

C 提供了下列的循环控制语句。点击链接查看每个语句的细节。

控制语句描述
break 语句 终止循环switch 语句,程序流将继续执行紧接着循环或 switch 的下一条语句。
continue 语句 告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。
goto 语句 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。

 【示例】break语句

 1 #include <stdio.h>
 2  
 3 int main ()
 4 {
 5    /* 局部变量定义 */
 6    int a = 10;
 7 
 8    /* while 循环执行 */
 9    while( a < 20 )
10    {
11       printf("a 的值: %d
", a);
12       a++;
13       if( a > 15)
14       {
15          /* 使用 break 语句终止循环 */
16           break;
17       }
18    }
19  
20    return 0;
21 }

【示例】continue语句

 1 #include <stdio.h>
 2  
 3 int main ()
 4 {
 5    /* 局部变量定义 */
 6    int a = 10;
 7 
 8    /* do 循环执行 */
 9    do
10    {
11       if( a == 15)
12       {
13          /* 跳过迭代 */
14          a = a + 1;
15          continue;
16       }
17       printf("a 的值: %d
", a);
18       a++;
19      
20    }while( a < 20 );
21  
22    return 0;
23 }

goto语句一般不会建议程序员使用,大家了解有这条语句就好,这里就展示示例了。

无限循环

如果条件永远不为假,则循环将变成无限循环。for 循环在传统意义上可用于实现无限循环。由于构成循环的三个表达式中任何一个都不是必需的,您可以将某些条件表达式留空来构成一个无限循环。

 1 #include <stdio.h>
 2  
 3 int main ()
 4 {
 5    for( ; ; )
 6    {
 7       printf("该循环会永远执行下去!
");
 8    }
 9    return 0;
10 }

当条件表达式不存在时,它被假设为真。您也可以设置一个初始值和增量表达式,但是一般情况下,C 程序员偏向于使用 for(;;) 结构来表示一个无限循环。(当然你也可以使用while、do-while来构建无限循环)

注意:您可以按 Ctrl + C 键终止一个无限循环。

原文地址:https://www.cnblogs.com/Long-w/p/8628595.html