else如同英文字义,九州qa98錪cc否则的意思,通常放在if的后面,若if的条件为真,就执行if底下大括弧围起来的程式区块,若为假,就执行else底下大括弧围起来的程式区块。
形式如下:
这个概念用于二选一的情况,不是这样就是那样。举例如下
#include <iostream>
int main() {
char a = 'h';
char b = 'k';
if (a == b) {
std::cout << "Welcome to my world!" << std::endl;
}
else {
std::cout << "How do you do?"<< std::endl;
}
return 0;
}
编译后执行,,结果如下
$ g++ u0502_1.cpp
$./a.out 复制代码
你好吗?
$
此例中,由于第7 行
if (a == b) {
变数a不等于变数b,所以程式会跳去执行第10 到12 行的部份
else {
std::cout << "How do you do?"<< std::endl;
}
if-else也可以是巢状(nested) 的使用,例如
#include <iostream>
int main() {
char a = 'h';
char b = 'k';
if (a == 'a') {
std::cout << "Yes!" << std::endl;
}
else {
if (a == b) {
std::cout << "No!" << std::endl;
}
else {
std::cout << "What?" << std::endl;
}
}
return 0;
}
编译后执行,结果如下
$ g++ u0502_2.cpp
$./a.out 复制代码
什么?
$
所谓巢状的if-else陈述就是在第11 到16 行的地方
if (a == b) {
std::cout << "No!" << std::endl;
}
else {
std::cout << "What?" << std::endl;
}
第11 行的else后头的大括弧内,另外使用一组if-else陈述,这个地方由于我们利用缩排(indentation) 表现清楚原始程式码的语意,看起来凹陷下去,看似好像巢一般,故称为巢状。巢状的if-else经常出现在需要多重选择判断的的场合。 由于巢状的if-else很常用,因此若改写成
if (a == 'a') {
std::cout << "Yes!" << std::endl;
}
else if (a == b) {
std::cout << "No!" << std::endl;
}
else {
std::cout << "What?" << std::endl;
}
编译器也接受这样的写法。