第四章 选择结构

本文详细介绍了编程中的逻辑运算符,包括关系运算符、逻辑运算符及其短路特性,如&&和||的短路行为。此外,还讲解了if语句的三种格式,包括嵌套使用和else的配对规则。最后,提到了switch语句的工作原理,强调了匹配过程和break语句的重要性。文章旨在帮助读者理解并熟练掌握这些基础但关键的编程概念。
摘要由CSDN通过智能技术生成

定义:从main()开始,由上往下有些语句执行有些不执行

两类语句→执行语句:控制语句
不标定义语句,直接标执行语句
找配对,找控制,标语句

两类表达式

  • 关系运算符及关系表达式 {结果是逻辑值,即不是0(假)就是1(真)}

< <= > >= (6级,从左往右)
= = != (7级,从左往右)

  • 运算符与逻辑表达式{结果是逻辑值,即不是0(假)就是1(真)}
    • && (11级(从左往右) 一假则假

&&的短路:第一个操作数的逻辑值为0则直接输出结果为0(后续操作数不会再计算了)

  • || (12级 ,从左往右) 一真则真

||的短路:第一个操作数的逻辑值为1则直接输出结果为1(后续操作数不会再计算了)

  • !(单目)(2级,从右往左) 非真即假

  • 三要素:功能、优先级、结合性

2级的都是单目,单目的都是从右往左
3-12级都是双目,双目的都是从左往右

  • 表达式计算步骤
    1. 先看表达式合不合法
    2. 然后看有没有短路
    3. 计算优先级高的,同级情况下再看结合性

if 语句(三种格式)

格式1:if语句

if(表达式)
{
    语句序列;
}
    

格式2:if else语句

if(表达式)
{
    语句序列;
}else
{
    语句序列;
}

注意:

  1. 一个else都要和一个if配对
  2. 如果 则if不加 {},那么只控制下面的第一句话;else不加 {},那么只控制下面的第一句话。
  3. 如果if没有加 {},并且和else中间不止有一句话,那么程序就会报错:else无法找到与之匹配的if
  4. 复合语句 { }算一条语句

格式3:if的嵌套

  • 形式一
if(表达式)
{
    if(表达式)
    {
        语句序列;
    }else
    {
        语句序列;
    }
}else
{
    语句序列;
}

else总是在它上面、离它最近的、未与其他else配对的那个if配对

  • 形式二:多选一
if(条件) 
{ 
    代码块;
} 
else if(条件) 
{ 代码块;
} 
else 
{
    代码块 ;
}

注意:
不能随便加分号,不能将结构分离
else跟同层的,上边最近的else if匹配

  • 嵌套

对比多个if并列的写法

switch语句

switch(整型表达式)//实现判断
{
    语句项;
}

//句项是什么呢?
//是一些case语句:case语句实现选择
//如下:
case 整形常量表达式:
    语句;

//在switch语句中的 break
case 整形常量表达式:
    语句;
    break;

default可有可无,建议有

  • 执行过程:

表达式里的值和case后面的常量表达式的值进行匹配:
如果匹配成功就会执行该case之后的子句以及该case下面所有的case的子句;
若表达式里的值和case后面的常量表达式的值都不匹配,才会执行default后面的子句(没有的话直接跳出)
若default下面还有case语句,则依然会执行 ;
若default在最 上面,并不会先执行default的,还是依旧先寻找与表达式值相匹配的常量表达式的值,如果找不到,就会执行default语句,然后再执行下面所有的case语句(除非遇到break)

注意:

  1. switch后面的表达式必须是个值,要和下面case后的相互匹配
  2. switch后必须用小括号将表达式括起
  3. case后常量整型或字符型,不能有变量和逗号运算符
  4. 各case后常量不能出现相同的值
  5. case和default 只是一个入口标号,不起中断作用。它们的顺序可以任意颠倒
  6. case 和default必须出现在switch语句中
  7. char类型数据输入的时候系统会自动给你加上’'的,比如你输入a,系统识别为‘a’
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值