项目六选择结构程序设计的应用

本文详细介绍了编程中的选择结构,包括条件判断、布尔表达式、关系运算符(如相等、大于等)、逻辑运算符(与、或、非)以及if、else、多分支if和switch语句的运用实例,展示了如何根据条件执行不同的代码块。
摘要由CSDN通过智能技术生成

选择结构的概述

概述

选择结构是一种程序控制结构,用于根据条件的成立与否,在程序执行过程中选择性地执行不同的代码块。也就是说,选择结构会根据某个条件的判断结果来决定程序是否执行某一段代码。

条件描述

条件判断表达式

也称为布尔表达式,是选择结构中用来判断条件是否成立的关键。它的结果只能是“真”或“假”。

条件判断表达式通常使用比较运算符、逻辑运算符和其他运算符组合而成。其中比较运算符用于比较两个值的大小或者相等性,逻辑运算符用于连接多个条件表达式,并执行与或非等逻辑操作。

关系运算符与关系表达式

关系运算符是用来比较两个值之间大小或者相等性的运算符。在选择结构中,常常使用关系运算符来构造关系表达式(也称为条件表达式或布尔表达式)

关系运算符包括以下几种:

  • 相等性判断运算符(==),用于判断两个值是否相等。
  • 不等性判断运算符(!=),用于判断两个值是否不相等。
  • 大于运算符(>),用于判断左边的值是否大于右边的值。
  • 小于运算符(<),用于判断左边的值是否小于右边的值。
  • 大于等于运算符(>=),用于判断左边的值是否大于等于右边的值。
  • 小于等于运算符(<=),用于判断左边的值是否小于等于右边的值。

关系表达式是由关系运算符和操作数(常量、变量、表达式)组成的表达式,其结果只能是“真”或“假”。关系表达式最常见的应用场景是条件语句中,用来判断一个条件是否成立。例如:

int a = 5;
int b = 3;
int result = (a > b); //result的值为1,表示真
 

在C语言中,关系表达式通常用于条件语句中,例如:

int age = 20;
if (age >= 18) {
    printf("你已经成年了\n");
}
 

这段代码中,关系表达式 age >= 18 的值为真,因此if语句的条件成立,执行其中的printf语句。

需要注意的是,在C语言中,关系表达式的值为0或1,分别表示假和真。因此,在进行关系运算时,要特别注意关系表达式的数据类型,以避免出现意外的结果

逻辑运算符与逻辑表达式

逻辑运算符是用于组合和操作逻辑表达式的符号,常见的逻辑运算符包括:

  • 逻辑运算符(&&):同真为真,一假则假,当且仅当两个操作数都为真时,结果为真,否则结果为假。
  • 逻辑运算符(||):同假为假,一真为真,当且仅当两个操作数都为假时,结果为假,否则结果为真。
  • 逻辑运算符(!):真真假假,真假互换,用于取反操作,如果操作数为真则结果为假,如果操作数为假则结果为真。

逻辑表达式则是由一个或多个关系表达式和逻辑运算符组成的表达式,例如:

int a = 5;
int b = 3;
int c = 7;
if (a > b && b < c) {
    printf("a大于b并且b小于c\n");
}

这段代码中,逻辑表达式 a > b && b < c 的值为真,因为a大于b并且b小于c,所以if语句的条件成立,执行其中的printf语句。

为了直接显示逻辑运算符的关系,如图下:

//与运算
0 & 0=0;0 & 1=0;1 & 0=0;1 & 1=1;
//或运算 
0 | 0=0;1 | 0=1;0 | 1=1;1 | 1=1;
//

if语句的简单运用

if语句的基本格式

if (condition) {  //condition可以是任意的条件表达式
    // 执行语句
}
 

下面是一个简单的if语句的示例,用于判断一个数是否为偶数:

#include <stdio.h>

int main() {
    int x = 10;
    if (x % 2 == 0) {
        printf("%d是偶数\n", x);
    }
    return 0;
}
 

在上述代码中,if语句的条件表达式x % 2 == 0判断x除以2的余数是否为0,如果是,则说明x是偶数,就会执行if语句中的代码块,打印输出x是偶数

if语句的执行过程

if...else语句的运用

if...else语句的基本格式

if (condition) {
    // condition为true时执行的语句
} else {
    // condition为false时执行的语句
}

在执行if...else语句时,先判断condition的值是否为真(非0)。如果为真,则执行if语句后的代码块;如果为假,则执行else语句后的代码块。

例如,下面的代码判断一个数是否为偶数,如果是,则输出x是偶数,否则输出x是奇数

#include <stdio.h>

int main() {
    int x = 10;
    if (x % 2 == 0) {
        printf("%d是偶数\n", x);
    } else {
        printf("%d是奇数\n", x);
    }
    return 0;
}

需要注意的是,if...else语句中的条件表达式condition只会执行其中一个代码块,condition为真时执行if代码块,condition为假时执行else代码块。

if...else语句的执行过程

多分支if语句的运用

多分支if语句基本格式

if (条件1) {
    // 条件1成立时要执行的代码
} else if (条件2) {
    // 条件1不成立,条件2成立时要执行的代码
} else if (条件3) {
    // 条件1和条件2都不成立,条件3成立时要执行的代码
} else {
    // 所有条件都不成立时要执行的代码
}
 

多分支if语句可以应用于需要根据不同情况采取不同行动的情况,例如:

score = 90

if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 60:
    print("及格")
else:
    print("不及格")

上述代码中,我们根据不同的成绩段打印不同的评价,比如成绩在90分以上就是“优秀”,在80-89分之间就是“良好”,在60-79分之间就是“及格”,60分以下就是“不及格”。 多分支if语句的形式简单明了,容易理解和修改,是常用的基本代码结构之一。

多分支if语句执行过程

switch语句的运用

switch语句基本格式

switch (expression) {
    case constant1 :
        statement(s);
        break;
    case constant2 :
        statement(s);
        break;
    default :
        statement(s);
}

其中:

  1. expression通常是一个变量,它的值会在执行switch语句前被求出。
  2. case后面的constant1constant2等代表可能的值。这些值必须是整数或者能够被评估为整数的表达式(如字符)。
  3. statement(s)是当某个case被选中的时候需要执行的语句。
  4. break语句是用来结束当前的case代码块,并跳出switch语句。如果不加break,程序会继续执行下一个case代码块,直到遇到break或者switch语句结束。
  5. default代码块是可选的,当所有的case都不匹配的时候执行。

下面是一个switch语句的示例:

#include <stdio.h>

int main () {
   int grade = 'B';

   switch(grade) {
      case 'A':
         printf("Excellent!\n" );
         break;
      case 'B':
      case 'C':
         printf("Well done\n" );
         break;
      case 'D':
         printf("You passed\n" );
         break;
      case 'F':
         printf("Better try again\n" );
         break;
      default:
         printf("Invalid grade\n" );
   }

   return 0;
}
 

上述代码中,我们定义了一个变量grade的值为'B',然后使用switch语句根据不同的case执行不同的代码块。由于case 'B'case 'C'的代码块是相同的,所以它们可以合并在一起,用逗号隔开。

执行上述代码,输出为Well done,表示grade的值为'B''C'时执行了该代码块。

文章到此一游,😜

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好运2024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值