4.2 用if语句实现选择结构

 

第4章 选择结构程序设计

4.2 用if语句实现选择结构

4.2.1 用if语句处理选择结构举例

选择结构在C语言中通常是通过if语句来实现的。这种结构使我们能够根据条件执行不同的代码块。下面通过两个简单的例子来进一步探讨if语句的应用。

【例4.2】输入两个实数,按由小到大的顺序输出这两个数。

解题思路:这个问题的解决方法很直接——进行一次比较,然后根据需要交换两个数的位置。这里的关键在于如何交换两个变量的值,这不能通过简单的直接赋值来完成。

交换变量的正确方法:要交换两个变量,我们需要借助第三个变量。例如,要交换变量 ab 的值,我们可以使用下面的方法:

#include <stdio.h>

int main() {
    float a, b, temp;
    printf("Enter two numbers: ");
    scanf("%f %f", &a, &b);

    if (a > b) {
        temp = a;
        a = b;
        b = temp;
    }

    printf("%.2f, %.2f\n", a, b);
    return 0;
}

程序分析:此程序首先输入两个数字,如果第一个数字大于第二个数字,通过使用临时变量 temp 实现两个变量的值的交换。最终,两个数按照从小到大的顺序输出。

【例4.3】输入三个数a, b, c,要求按由小到大的顺序输出。

解题思路:这个问题稍微复杂一点,但仍然可以通过一系列的比较和交换来解决。我们可以使用一种简单的排序方法,如冒泡排序的初级形式,来确保数字的顺序。

实现方法

#include <stdio.h>

int main() {
    float a, b, c, temp;
    printf("Enter three numbers: ");
    scanf("%f %f %f", &a, &b, &c);

    if (a > b) {
        temp = a;
        a = b;
        b = temp;
    }
    if (a > c) {
        temp = a;
        a = c;
        c = temp;
    }
    if (b > c) {
        temp = b;
        b = c;
        c = temp;
    }

    printf("%.2f, %.2f, %.2f\n", a, b, c);
    return 0;
}

程序分析:程序首先确保 a 是最小的数,然后确保 bc 小。这样通过简单的三次比较和可能的交换,我们确保了 abc 按照升序排列。每次比较后,如果条件成立,就进行交换,确保数值的正确顺序。

通过这两个例子,我们可以看出,if语句在处理需要条件决策的问题时非常有用。在更复杂的程序中,正确地使用if语句可以大大增强程序的功能和灵活性。

 

 

4.2.2 if语句的一般形式

通过前面的例子,我们已经了解了如何使用 if 语句来实现选择结构。本篇博客将详细解释 if 语句的一般形式,帮助大家更好地理解和使用这一重要的编程结构。

1. if语句的基本结构

if 语句是大多数编程语言中用于实现条件逻辑的基础。它的一般形式如下:

if(表达式)
    语句1
[else
    语句2]

在这里,表达式 可以是关系表达式、逻辑表达式,甚至是数值表达式。例如,在 if(disc < 0) 中,disc < 0 就是一个关系表达式,用于比较两个数值。

方括号内的 else 子句是可选的。你可以选择根据条件的不同执行不同的代码块。

2. if语句的不同形式

根据是否包含 else 子句,if 语句可以有几种不同的形式:

  • 形式1:只有 if

     
    if(表达式)
        语句1;
    

  • 形式2:if-else

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

  • 形式3:多层嵌套的 if-else

     
    if(表达式1)
        语句1;
    else if(表达式2)
        语句2;
    else if(表达式3)
        语句3;
    // 可以继续嵌套更多的 else-if
    else
        语句n;
    

例如,根据数字的不同范围来设定不同的费用:

if(number > 500)
    cost = 0.15;
else if(number > 300)
    cost = 0.10;
else if(number > 100)
    cost = 0.075;
else if(number > 50)
    cost = 0.05;
else
    cost = 0;

这种多层嵌套形式增强了程序的可读性和简洁性。

3. 编写风格和注意事项

  • 清晰性:虽然 if 语句可以写在一行上,为了程序的清晰,建议使用缩进和换行来提高可读性。
  • 语句终止:每个 ifelse 子句后的语句应该以分号结束,这是语句的必要成分。
  • 复合语句:如果一个 ifelse 子句中包含多个语句,应该用花括号 {} 将这些语句括起来。

例如,使用复合语句的 if 结构可能如下:

if(x > 0) {
    y = 1;  // 注意这里有分号
} else {
    y = -1; // 注意这里有分号
}

4. 逻辑值的理解

在编程中,条件表达式的结果是一个逻辑值,即“真”或“假”。这些逻辑值用于控制程序流程。例如,判断一个人是否超过70岁,如果是,则表达式结果为“真”,否则为“假”。

通过本篇博客的讲解,希望大家能更好地理解 if 语句的一般形式和使用方法。在程序设计中,合理地使用 if 语句可以帮助我们构建更加灵活和强大的逻辑结构。

 

 

  • 20
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夏驰和徐策

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

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

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

打赏作者

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

抵扣说明:

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

余额充值