跳至正文
View Categories

1 min read

主要内容 #

1. if 的嵌套 #

小练习:
请用两次判读语句,检查输入整数,是否大于0,并且小于等于10。
是则输出 Yes;否则什么都不做。

#include < iostream >
using namespace std;
int main()
{
    // 请编程
    





    return 0;
}

示例程序:

#include < iostream >
using namespace std;
int main()
{
    int dashima(0);
    cout << "请输入一个整数:" << endl;
    cin >> dashima;

    if(dashima> 0)
    {
        if(dashima<= 10)
            cout << "Yes" << endl;
    }  

    return 0;
}

从这个程序中,我们可以看到这样的结构

if( 条件表达式 1 )
{
    if( 条件表达式 2 )
    {
        // 执行语句
    }
}

这种结构就被称为“if 的嵌套”。

“if 的嵌套”可以有多层。比如:

if( 条件表达式 1 )
{
    if( 条件表达式 2 )
    {
        if( 条件表达式 3 )
        {
            if( 条件表达式 4 )
            {
                // 执行语句
            }
        }
    }
}

2. 逻辑关系“与”:同时成立 #

我们来详细看一下上面的 if 嵌套结构。

if(input > 0)       // 条件表达式 1 
{
    if(input <= 10) // 条件表达式 2 
    {
        // 执行语句 X
    }
}

请问:(选择题)
如果,我们希望执行“语句 X”,“条件表达式 1 ” 和 “条件表达式 2 ” 应该是什么关系?

  • A. “条件表达式 1 ” 和 “条件表达式 2 ” 都成立;
  • B. “条件表达式 1 ” 成立, “条件表达式 2 ” 不成立;
  • C. “条件表达式 1 ” 不成立, “条件表达式 2 ” 成立;
  • D. “条件表达式 1 ” 和 “条件表达式 2 ” 都不成立;

这里,应该是选择“条件表达式 1 ” 和 “条件表达式 2 ” 都成立;

还记得我们在数学中,怎么表达这样的关系吗?


上面的关系,在数学中被称为: 逻辑关系“与”

input 1 0
不等式是否成立 成立 不成立

3. 逻辑关系表达式 #

上面的数学不等式,在 C++ 可以表达为:

  
0 < input && input <= 10
  • C++ 中,使用 && 来表示 逻辑关系“与”
  • 符号 && 表示:判断“条件表达式 1 ” 和 “条件表达式 2 ” 是不是都成立;
  • 这也是一种“表达式”,我们称之为“逻辑关系表达式”逻辑关系“与” 是其中的一种;
  • 【注意】不能写成:0 < input <= 10; 这不是 C++ 语法;

上面的关系,可以再写作:

  
bool is_ok;
is_ok = 0 < input && input <= 10;
is_ok = (0 < input) && (input <= 10); // 可以有括号

0 < input <= 10; // 【错误】注意,C++ 不支持这样的语法,必须使用 && 表达“与”关系。

“逻辑关系表达式”的取值说明:

  
bool is_ok =  “条件表达式 1 ” && “条件表达式 2 ”
条件表达式 1 条件表达式 2 is_ok
true true true
false true false
true false false
false false false

4. 逻辑关系“与”的辅助理解 #

  • b>逻辑关系“与”的理解1:

  • 逻辑关系“与”的理解2:

  • 逻辑关系“与”的理解3:

习题 #

课后练习