C++| C++ 入门教程(四) 程序流程结构
4 程序流程结构
【C++| C++ 入门教程(四) 程序流程结构】C++支持最基本的三种程序运行结构:
- 顺序结构
- 选择结构
- 循环结构
4.1.1 if 语句 作用:执行满足条件的语句
if 语句可以嵌套叠加
单行格式 if 语句
if(条件){条件满足需要执行的语句;
}
多行格式 if 语句
if(条件){条件满足执行的语句}else{条件不满足执行的语句}
多条件 if 语句
if(条件)
{满足的语句}
else if(条件2)
{满足条件1但不满足条件2的语句}
…
else
{都不满足的语句};
练习案例
有三只小猪ABC,请分别输入三只小猪的体重,并判断谁最重。
#include
#include
using namespace std;
class Pig {
string name;
int weight;
public:
Pig() { cout << "Pig constructed." << endl;
}
~Pig() { cout << "Pig disconstructed." << endl;
}void setName(string n) {
name = n;
}
void setWeight(int w) {
weight = w;
}
int getWeight() {
return weight;
}
string getName() {
return name;
}
};
int main() {
string name;
int weight;
Pig pigA;
cout << "Please enter the name of pig A: ";
cin >> name;
pigA.setName(name);
cout << "Please enter the weight of pig A: ";
cin >> weight;
pigA.setWeight(weight);
Pig pigB;
cout << "Please enter the name of pig B: ";
cin >> name;
pigB.setName(name);
cout << "Please enter the weight of pig B: ";
cin >> weight;
pigB.setWeight(weight);
Pig pigC;
cout << "Please enter the name of pig C: ";
cin >> name;
pigC.setName(name);
cout << "Please enter the weight of pig C: ";
cin >> weight;
pigC.setWeight(weight);
if (pigA.getWeight() >= pigB.getWeight() && pigA.getWeight() >= pigC.getWeight()){
cout << pigA.getName() << " is the heavieat." << endl;
}
else if (pigB.getWeight() >= pigA.getWeight() && pigB.getWeight() >= pigC.getWeight()){
cout << pigB.getName() << " is the heavieat." << endl;
}
else{
cout << pigC.getName() << " is the heavieat." << endl;
}cin.get();
return 0;
}
我在构造函数和解析函数中添加了输出语句。因此可以看出,如果不用new和delete的话,编译器也会自动地释放空间。
4.1.2 switch 语句 作用:执行多条件分支语句
语法:
switch(表达式)
{
case 结果1:表达式1;
break;
case 结果2:表达式2;
break;
case 结果3:表达式3;
break;
case 结果4:表达式4;
break;
case 结果5:表达式5;
break;
……
default:表达式6;
}
注意:如果不加 break,后面的case之中的表达式会全部被执行!
if 和 switch 的区别;
switch 只能判断整型和字符型,不能判断一个区间
switch 结构清晰,执行效率更高。
问题:switch 能判断 C 风格或 C++ 风格字符串么?尝试了一下枚举,感觉还不错。实际上枚举可以当成一组相关常量的使用方法,感觉用起来还是不错的。
回答:不行,但是可以判断枚举量。(晚上可以试一下)
#include
using namespace std;
int main() {
enum Color{red,green,yellow};
Color color = red;
int i = color;
i++;
color = Color(i);
switch (color) {
case red:
cout << "The color is red." << endl;
break;
case green:
cout << "The color is green. " << endl;
break;
case yellow:
cout << "The color is yellow. " << endl;
break;
}return 0;
}
4.2 循环结构
4.2.1 while 循环 作用:满足循环条件,执行循环语句
语法:
while( 循环条件 ){ 循环语句 }
4.2.2 do while 循环 作用:先执行,再不断循环执行语句
语法:
do{
循环语句;
}while( 循环条件 );
PS. 需要注意,这个语句在
while(循环条件)
后需要加上分号。它相当于整个 do while 语句的结束。#### 4.2.3 for 循环
作用:满足条件,执行循环语句
语法:
for(起始表达式. 条件表达式, 末尾循环体){循环语句}
4.3 跳转语句
break: 跳出当前循环或 switch
continue: 结束这一次循环进入下一个循环
goto: 跳转到你标记的位置,可以用来跳出多层循环
语法:
goto 标记;
……
标记:
……
注意:标记的名称一般用纯大写;跳转的标记处,应该用冒号。
推荐阅读
- 跌跌撞撞奔向你|跌跌撞撞奔向你 第四章(你补英语,我补物理)
- 奔向你的城市
- 四首关于旅行记忆的外文歌曲
- CET4听力微技能一
- 亲子日记第186篇,2018、7、26、星期四、晴
- opencv|opencv C++模板匹配的简单实现
- 特种兵训练第四天
- 第四十三篇接纳孩子的感受
- 《自我的追寻》读书笔记3
- 不让记忆、感觉、情绪成为孩子的负累|不让记忆、感觉、情绪成为孩子的负累|《全脑教养法》(四)