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