不理解,一段话是啥意思

img


书上的一句话讲的太笼统了,我听不懂,有谁可以讲的更简洁明了一些?

简单来说

if (明天晴天)
if (我有时间)
我去打球
else
我去看书

这几行代码的意思是
"如果明天晴天并且我有时间,我去打球,如果明天晴天但是我没有时间,我去看书,如果明天不是晴天,我什么都不做"

if (明天晴天)
    if (我有时间)
        我去打球
    else
        我去看书

而不是"如果晴天并且有时间,我去打球,如果晴天我没时间,我什么都不做,如果明天不是晴天,我去看书"

if (明天晴天)
    if (我有时间)
        我去打球
else
    我去看书

为了表达"如果晴天并且有时间,我去打球,如果晴天我没时间,我什么都不做,如果明天不是晴天,我去看书"这个逻辑,那么需要用花括号

if (明天晴天)
{
    if (我有时间)
        我去打球
}
else
    我去看书

当不写花括号的时候,if和最近的else匹配
当写了花括号之后,就类似四则混合运算写括号一样,括号里面的if,else自行匹配,括号外面的按之前的规则就近匹配
那么什么是就近呢
就类似括号的嵌套(()()),每个)和它前面最近的(组成一对
因为if可以不跟else
那么类比括号的嵌套,如果写成这样((),可以肯定后面的()是一对,前面的括号没有写反括号,而不是一对()将一个(包在里面

就是else与最近的if匹配

在使用 if 语句时,一般建议将代码块用大括号括起来,以提高代码的可读性和可维护性。这样可以减少出错的可能性,并且可以防止由于代码格式化错误而导致逻辑发生错误。
然而,对于单条语句的情况,如果确保代码逻辑正确且易于理解,也可以不使用大括号括起来。
两种写法而已。如果不用大括号括起来的这种写法,多层逻辑 else会匹配最近的一次if。也就是你贴图中的 if(x<13)...这条。如果你想让他匹配第一个if(x>7)这个,这个if(x>7)后面的执行语句需要用大括号括起来。

如果对你有帮助,麻烦点一下采纳,谢谢。

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7462217
  • 这篇博客也不错, 你可以看下实现一个函数,判断一个数是不是素数
  • 除此之外, 这篇博客: 蓝桥杯单片机类的一些总结中的 一些我遇见的报错总结 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • ERROR: PREPROCESSOR: MACROS TOO NESTED宏嵌套过多
    
    ACTION: PARSING SOURCE-FILE

    检查头文件是否嵌套

    ..\Driver\iic.c(10): error C202: 'P21': undefined identifier

    检查C文件是否加头文件。

    出现类似 0xA3这类报错的看样子没错的可能是多一个空格。

    User\mian.c(161): warning C206: 'Pcf8591_Adc': missing function-prototype
    
    User\mian.c(161): error C267: 'Pcf8591_Adc': requires ANSI-style prototype

    编译问题:.c文件里的函数头文件未声明;

    *** ERROR L107: ADDRESS SPACE OVERFLOW
        SPACE:   DATA    
        SEGMENT: _DATA_GROUP_
        LENGTH:  001CH
    Program Size: data=112.3 xdata=0 code=5537

    片内内存不足,可以将变量存储到片外ram中,例如:

    xdata unsigned long ms = 0;
    
    xdata unsigned long key_time;
    
  • 您还可以看一下 CSDN讲师老师的如何一次通过软考?课程中的 如何一次通过软考?小节, 巩固相关知识点