基本选择结构介绍

if语句

在C语言中,if 语句用于根据某个条件(通常是一个布尔表达式)来执行一段代码。如果条件为真(非零),则执行if后的代码块;否则,跳过该代码块。

if 语句的基本语法如下:

if (condition) 
{  
    // 代码块,当 condition 为真时执行  
}

其中,condition 是一个返回布尔值的表达式。在C语言中,布尔值实际上是用整数来表示的:0 表示假(false),非0 表示真(true)。

此外,if 语句还可以与 else 关键字一起使用,以指定当条件为假时应执行的代码块:

if (condition) 
{  
    // 代码块1(当 condition 为真时执行)  
} 
else 
{  
    // 代码块2(当 condition 为假时执行)  
}

还有一种 else if 结构,它允许你检查多个条件并执行相应的代码块:

if (condition1) 
{  
    // 代码块1(当 condition1 为真时执行)  
} 
else if (condition2) 
{  
    // 代码块2(当 condition1 为假,但 condition2 为真时执行)  
} 
else 
{  
    // 代码块3(当 condition1 和 condition2 都为假时执行)  
}

在这个结构中,else if 语句实际上是 if 语句后面跟着一个 else 语句,而该 else 语句又包含另一个 if 语句。然而,else if 结构更易于阅读,因为它明确表示了存在多个条件需要被检查。

条件表达式可以是任何返回值的表达式,但通常是关系表达式(如 a > b)或逻辑表达式(如 a > b && c < d),这些表达式的结果可以被解释为真或假。

下面是一个简单的示例,展示了如何在C语言中使用 if 语句:

#include <stdio.h>  
  
int main() 
{  
    int a = 5;  
    int b = 10;  
  
    if (a < b) 
    {  
        printf("a is less than b\n");  
    } 
    else 
    {  
        printf("a is not less than b\n");  
    }  
  
    return 0;  
}

在这个示例中,程序将输出 "a is less than b",因为 a < b 的条件为真。

使用 if 语句时,需要注意以下几点:

  1. 条件表达式:条件表达式可以是任何返回值的表达式,但通常为关系表达式或逻辑表达式。条件表达式的值必须为布尔类型,即真或假。
  2. 括号的使用:在 if 语句中,条件判断表达式必须用括号括起来。这是为了确保条件表达式的正确计算和求值。
  3. 语句的完整性:在 if 语句的条件表达式后面,不要加分号。分号是语句结束的标志,如果放在条件表达式后面,会导致程序出现错误。
  4. 代码块的组织:当 if 语句后面有多个语句需要执行时,应该使用大括号 {} 将这些语句括起来,组成一个复合语句。这样可以确保当条件满足时,所有语句都会被执行。
  5. 避免无限循环:在使用 if 语句时,要特别注意避免编写可能导致无限循环的代码。例如,如果条件永远为真,那么程序将陷入无限循环中。
  6. 注意逻辑错误:在编写复杂的 if-else 语句时,要特别小心逻辑错误。确保每个条件分支都能正确处理程序中的各种情况。
  7. 可读性和格式化:为了提高代码的可读性,建议在 if 语句的各个部分之间添加空格和缩进,并保持适当的格式化。这样可以使代码更易于阅读和理解。

 switch语句

switch语句是一种多路选择结构,它允许基于一个整数值或字符值(实际上是整数值)来执行多个代码块中的一个。switch语句比多个嵌套的if-else语句更加简洁和易读。

switch语句的基本语法如下:

switch (expression) 
{  
    case constant-expression:  
        // 代码块1  
        break;  
    case constant-expression:  
        // 代码块2  
        break;  
    // ... 可以有更多 case  
    default:  
        // 默认代码块(当没有 case 匹配时执行)  
}

 

  • expression:必须是一个整型或字符型的表达式(包括变量),其值将与每个case后的constant-expression进行比较。
  • case constant-expression:这里constant-expression是一个常量表达式,其值必须与switch表达式中的值相匹配。如果匹配成功,则执行相应的代码块。
  • break:用于退出switch语句,防止程序继续执行下一个case的代码块。
  • default:可选的部分,当没有任何case与expression的值匹配时,执行default下的代码块。

需要注意的是:

  1. case后面的常量表达式必须是编译时可计算的常量,不能是变量。
  2. 如果没有break语句,程序会继续执行下一个case的代码块,这被称为“fall-through”。
  3. default子句是可选的,但建议总是包含它来处理未预期的值。
  4. switch语句本身不执行任何操作,它只是提供了一种结构来组织代码。真正的执行是由各个case代码块来完成的。

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

#include <stdio.h>  
  
int main() 
{  
    int dayOfWeek = 3;  
  
    switch (dayOfWeek) 
    {  
        case 1:  
            printf("Monday\n");  
            break;  
        case 2:  
            printf("Tuesday\n");  
            break;  
        case 3:  
            printf("Wednesday\n");  
            break;  
        case 4:  
            printf("Thursday\n");  
            break;  
        case 5:  
            printf("Friday\n");  
            break;  
        case 6:  
            printf("Saturday\n");  
            break;  
        case 7:  
            printf("Sunday\n");  
            break;  
        default:  
            printf("Invalid day\n");  
    }  
  
    return 0;  
}

在这个例子中,dayOfWeek变量的值决定了哪个case的代码块会被执行。如果dayOfWeek的值是3,程序将输出“Wednesday”。如果dayOfWeek的值不在1到7的范围内,程序将输出“Invalid day”。

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值