
语法:
if (成立条件表达式) {
当条件成立时需要执行的语句
}
if … else 用法:用来控制程序在指定条件下做事情A,否则做另外去做事情B。
语法:
if… else ifif (成立条件表达式) {
当条件成立时需要执行的语句
} else {
当条件不成立时需要执行的语句
}
if … else if 用法:有些时候,我们会遇到大于两个分支的复杂情况。这时候,我们需要用到 if … else if 语句,保证在多种情况下,不同条件成立时可以做不同的事情(如下图):
语法:
if (成立条件表达式1) {
当条件1成立时需要执行的语句
} else if (成立条件表达式2) {
条件1不成立但是条件2成立时需要执行的语句
} else {
当条件1和2都不成立时需要执行的语句
}
if … else if 延伸用法:如果情况需要分成不只三种,我们也可以在else后面再接if、else、if、else,依次判断每个条件是否成立,成立就执行对应的操作,否则就判断下一个条件是否成立:
if (成立条件表达式1) {
当条件1成立时需要执行的语句
} else if (成立条件表达式2) {
否则,当条件2成立时需要执行的语句
} else if (成立条件表达式3) {
否则,当条件3成立时需要执行的语句
} … else if (成立条件表达式n) {
否则,当条件n成立时需要执行的语句
} else {
当上述所有条件都不成立时需要执行的语句
}
练习:
#includeif 语句嵌套using namespace std; int main() { int age; cin >> age; if (age < 5) cout << "免票" << endl; else if (age <= 12) cout << "7折票" << endl; else if (age >= 60) cout << "5折票" << endl; else cout << "全票" << endl; return 0; }
if 语句嵌套:对于条件成立或者不成立的情况下需要执行的语句里,再嵌入if语句表示新的分支。
用法:
if (成立条件表达式1) {
if (成立条件表达式2) {
当条件1和2都成立时需要执行的语句
}
} else {
当条件1不成立时需要执行的语句
}
if (成立条件表达式1)
if (成立条件表达式2) {
当条件1和2都成立时需要执行的语句
}
else {
当条件1不成立时需要执行的语句
}
#includeusing namespace std; int main() { int age; cin >> age; double bill; cin >> bill; if (age >= 18) { cout << "允许进入" << endl; if (bill > 200) cout << "进门左转" << endl; } else { cout << "禁止进入" << endl; } return 0; }
判断是否为闰年:
#includeswitch 语句using namespace std; int main() { int a; cin >> a; if (a % 4 == 0) { if (a % 100 == 0 && a % 400 != 0) cout << "no"; else cout << "yes"; } else cout << "no"; return 0; }
switch用于表示这样的分支结构:根据某个变量不同的值进行不同的操作。
语法:
switch (变量名) {
case 变量可能的情况1: 执行语句1; break;
case 变量可能的情况2: 执行语句2; break;
…
// 可以有任意数量的 case 语句
default: 执行语句n;
}
break(难点):
default:一个switch语句可以有一个可选的default情况,出现在switch的结尾。default情况可用于上面所有case都不为真时执行。
#includeusing namespace std; int main() { // 输入一个字符代表自己的名字 char opt; cin >> opt; switch (opt) { // 如果opt=='6',执行完两句cout后,遇见break,就会跳出整个switch case '6': cout << "主人你好!" << endl; cout << "今天你想吃什么" << endl; break; case '1': cout << "小一你好!" << endl; cout << "今天天气怎么样?" << endl; break; case '2': cout << "你有什么需要帮助的吗?" << endl; break; // 如果opt=='4',由于'4'的 case 后面没有 break // 所以会往下执行'5'的 case 后面的语句,直到遇到 break case '4': case '5': cout << "我不想跟你说话" << endl; break; default: cout << "我不太清楚你是谁..." << endl; } }
Tips:对比这个场景下if和switch的用法: