主要内容 #
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:

习题 #
