vlambda博客
学习文章列表

C语言基本控制结构:选择语句

「今天是学习C语言第 15 天」


当你选择了一种语言,意味着你还选择了一组技术、一个社区。——Joshua Bloch

# 基本控制结构

C语言程序有顺序、选择(分支)、循环(迭代)3种基本控制结构,实现程序代码顺序执行、判断选择执行、循环执行控制。程序代码默认是顺序执行。


# 选择语句

选择语句要求程序测试条件,当条件为真时,选择执行部分语句,当条件为假时,选择执行另一部分代码。C语言把条件中的表达式值非0值判断为真,0或NULL判断为假。


C语言选择语句包括:

  • - 条件运算符 ?:

  • - if,if...else 以及if嵌套语句

  • - switch语句以及其嵌套语句


# 条件运算符 ?:

语句语法形式:

条件表达式1 ?: 表达式2 : 表达式3;

当条件表达式1为真时,执行表达式2,否则执行表达式3。

例:判断两个数谁大,输出谁。

#include <stdio.h>int main(void) {int a=1,b=2,c=3;
(b >= a) ? printf("%d\n",b) : printf("%d\n",a);(b >= c) ? printf("%d\n",b) : printf("%d\n",c);
return 0;}
执行结果: 第一个输出b的值 2 第二个输出c的值 3

# if语句

if语句有简单的if语句(无else),if...else语句,以及嵌套if语句形式。


简单if语句:

    if(表达式) 语句1;

    if(表达式) {

        语句1;

        语句2;

        ...

    }

    注:多条语句需要执行,需要使用{}


if...else语句

    if (表达式) 语句1; else 语句2;


    if (表达式) { 

        语句1;

        语句2;

        ... 

    } else {

        语句3;

        语句4;

        ... 

    } 


嵌套和级联形式:if,if....else语句可以互相嵌套,最高支持15层。

形式1:

    if( ){

    

    }else if( ) {

        

    }else if( ) {

        

    }else {

        

    }

形式2:

    if(表达式) {


        if(表达式) {


        }else {

            

        }

        ...

    }


例:判断分数是在哪个水平的区间,天才,优秀,良好,正常,及格,不及格。

#include <stdio.h>int main(void) { int score=95;
if (score >= 60) { printf("及格!\n");   // 进一步判断处于什么水平 if(score == 100) printf("天才!\n"); else if(score >= 90) { printf("优秀!\n"); }else if(score >=80 ) { printf("良好!\n"); }else           printf("正常!\n");   }else { printf("不及格!\n"); }
return 0;}
 结果是:及格 优秀

# switch语句

实现多路选择,最高支持257路选择,支持嵌套,语法更加简洁,语法如下:

switch(整型表达式) {

    case 整型常量表达式1:

        语句1;

        ...

        break; // 可选,跳出switch

    case 整型常量表达式2:

        语句2;

        ...

        break; // 可选,跳出switch

    

    ...//

    default :  // 默认执行语句,可选,当没有任何case符合时执行

        语句 3;

}

注:break;跳出switch不再执行后面语句,没有break会继续执行后面case语句。


例:判断下输入是否几个关心的10的整数

#include <stdio.h>int main(void) { int num;  scanf("%d",&num);
switch(num) { case 10: printf("输入整数10\n"); break; case 100: printf("输入整数100\n"); break; case 1000: printf("输入整数1000\n"); break;      case 10000:      case 100000:        printf("输入整数10000或者100000\n");  break; default:        printf("10的整数情况太多,不判断了\n");  }   return 0;}
输入100,结果是 输入整数10输入10000,结果是 输入整数10000或者100000。


---------- End ----------


往期精彩推荐:






「喜欢C请赏个 赞    点击右下角 在看」