C语言基础:条件判断(ifelseswitch三目运算符)

Posted CodeJiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言基础:条件判断(ifelseswitch三目运算符)相关的知识,希望对你有一定的参考价值。

1. 条件判断

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

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

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


1.1 判断语句

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

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

1.1.1 if 语句语法:

语法:

if(boolean_expression)

   /* 如果布尔表达式为真将执行的语句 */

示例:

#include <stdio.h>
 
int main ()

   /* 局部变量定义 */
   int a = 10;
 
   /* 使用 if 语句检查布尔条件 */
   if( a < 20 )
   
       /* 如果条件为真,则输出下面的语句 */
       printf("a 小于 20\\n" );
   
   printf("a 的值是 %d\\n", a);
 
   return 0;

运行结果:


1.1.2 if…else 语句

语法:

if(boolean_expression)

   /* 如果布尔表达式为真将执行的语句 */

else

   /* 如果布尔表达式为假将执行的语句 */

示例:

#include <stdio.h>
 
int main ()

   /* 局部变量定义 */
   int a = 100;
 
   /* 检查布尔条件 */
   if( a < 20 )
   
       /* 如果条件为真,则输出下面的语句 */
       printf("a 小于 20\\n" );
   
   else
   
       /* 如果条件为假,则输出下面的语句 */
       printf("a 大于 20\\n" );
   
   printf("a 的值是 %d\\n", a);
 
   return 0;

运行结果:


1.1.3 嵌套 if 语句

语法:

if( boolean_expression 1)

   /* 当布尔表达式 1 为真时执行 */
   if(boolean_expression 2)
   
      /* 当布尔表达式 2 为真时执行 */
   

示例:

#include <stdio.h>
 
int main ()

   /* 局部变量定义 */
   int a = 100;
   int b = 200;
 
   /* 检查布尔条件 */
   if( a == 100 )
   
       /* 如果条件为真,则检查下面的条件 */
       if( b == 200 )
       
          /* 如果条件为真,则输出下面的语句 */
          printf("a 的值是 100,且 b 的值是 200\\n" );
       
   
   printf("a 的准确值是 %d\\n", a );
   printf("b 的准确值是 %d\\n", b );
 
   return 0;

运行结果:


1.1.4 switch 语句

语法:

switch(expression)
    case constant-expression  :
       statement(s);
       break; /* 可选的 */
    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" );
      break;
   case 'D' :
      printf("您通过了\\n" );
      break;
   case 'F' :
      printf("最好再试一下\\n" );
      break;
   default :
      printf("无效的成绩\\n" );
   
   printf("您的成绩是 %c\\n", grade );
 
   return 0;

运行结果:


1.1.5 嵌套 switch 语句

语法:

switch(ch1) 
   case 'A': 
      printf("这个 A 是外部 switch 的一部分" );
      switch(ch2) 
         case 'A':
            printf("这个 A 是内部 switch 的一部分" );
            break;
         case 'B': /* 内部 B case 代码 */
      
      break;
   case 'B': /* 外部 B case 代码 */

示例:

#include <stdio.h>
 
int main ()

   /* 局部变量定义 */
   int a = 100;
   int b = 200;
 
   switch(a) 
      case 100: 
         printf("这是外部 switch 的一部分\\n");
         switch(b) 
            case 200:
               printf("这是内部 switch 的一部分\\n");
         
   
   printf("a 的准确值是 %d\\n", a );
   printf("b 的准确值是 %d\\n", b );
 
   return 0;

运行结果:


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

可以用来替代 if…else 语句。它的一般形式如下:

Exp1 ? Exp2 : Exp3;

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

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

示例:

#include<stdio.h>
 
int main()

    int num;
 
    printf("输入一个数字 : ");
    scanf("%d",&num);
 
    (num%2==0)?printf("偶数"):printf("奇数");

运行结果:



以上是关于C语言基础:条件判断(ifelseswitch三目运算符)的主要内容,如果未能解决你的问题,请参考以下文章

Python基础

java啥叫“三目条件运算符”?

三目运算符

if-else和三目运算符 ? : 的对比

P5709 深基2.习6Apples Prologue 题解

三目运算符