程序流程控制
C/C++ 支持最基本的三种程序运行结构:顺序结构、选择结构和循环结构
顺序结构
程序按顺序执行,不发生跳转
选择结构
依据条件是否满足,有选择的执行相应功能
循环结构
依据条件是否满足,循环多次执行某段代码
选择结构
if 语句
作用:执行满足条件的语句
三种形式:单行格式的 if 语句、多行格式的 if 语句和多条件的 if 语句
单行格式的 if 语句
语法:if(条件){条件满足执行的语句}
注意:在 if 判断语句后面不要加上分号
#include <iostream>
using namespace std;
int main()
{
int score = 0;
cout << "请输入自己的考试分数:";
cin >> score;
if (score > 520)
{
cout << "你可以上一本" << endl;
}
system("pause");
return 0;
}
多行格式的 if 语句
语法:if(){条件满足执行的语句}else{条件不满足执行的语句}
注意:else 后面不需要再写条件
#include <iostream>
using namespace std;
int main()
{
int score = 0;
cout << "请输入自己的考试分数:";
cin >> score;
if (score > 520)
{
cout << "你可以上一本" << endl;
}
else
{
cout << "你只能上二本或者是职校" << endl;
}
system("pause");
return 0;
}
多条件的 if 语句
语法:if(条件1){条件1满足执行的语句}else if(条件2){条件2满足执行的语句}…else{条件都不满足执行的语句}
#include <iostream>
using namespace std;
int main()
{
int score = 0;
cout << "请输入自己的考试分数:";
cin >> score;
if (score > 520)
{
cout << "你可以上一本" << endl;
}
else if (score > 400)
{
cout << "你可以上二本" << endl;
}
else
{
cout << "你可以上职校" << endl;
}
system("pause");
return 0;
}
嵌套 if 语句
#include <iostream>
using namespace std;
int main()
{
int score = 0;
cout << "请输入自己的考试分数:";
cin >> score;
if (score > 520)
{
cout << "你可以上一本";
if (score > 700)
{
cout << ",而且是清华大学" << endl;
}
else if(score > 600)
{
cout << ",而且是武汉大学" << endl;
}
else
{
cout << ",而且是华中农业大学" << endl;
}
}
else if(score > 400)
{
cout << "你可以上二本";
}
else
{
cout << "你可以上职校" << endl;
}
system("pause");
return 0;
}
案例:三只小猪称体重
#include <iostream>
using namespace std;
int main()
{
int num1 = 0;
int num2 = 0;
int num3 = 0;
cout << "请输入小猪A的体重:";
cin >> num1;
cout << "请输入小猪B的体重:";
cin >> num2;
cout << "请输入小猪C的体重:";
cin >> num3;
if (num1 > num2)
{
if (num1 > num3)
{
cout << "最重的小猪是A" << endl;
}
else
{
cout << "最重的小猪是C" << endl;
}
}
else
{
if (num2 > num3)
{
cout << "最重的小猪是B" << endl;
}
else
{
cout << "最重的小猪是C" << endl;
}
}
system("pause");
return 0;
}
三目运算符
作用:通过三目运算符实现简单的判断
语法:表达式 1 ? 表达式 2 : 表达式 3
对如上语法的解释:表达式 1 的值为真,执行表达式 2,并返回表达式 2 的结果;表达式 1 的值为假,执行表达式 3,并返回表达式 3 的结果;
案例:比较三个小猪的体重
#include <iostream>
using namespace std;
int main()
{
int num1 = 0;
int num2 = 0;
int num3 = 0;
cout << "请输入小猪A的体重:";
cin >> num1;
cout << "请输入小猪B的体重:";
cin >> num2;
cout << "请输入小猪C的体重:";
cin >> num3;
cout << "最大的体重是:" << ((num1 > num2) ? (num1 > num3 ? num1 : num3) : (num2 > num3 ? num2 : num3)) << endl;
system("pause");
return 0;
}
switch 语句
作用:执行多条件分支的语句
语法
switch(表达式)
{
case 结果1:
执行语句1;
case 结果2:
执行语句2;
...
default:
break;
}
案例:根据分数来给音乐作出对应的评价
注意:switch 语句中表达式的类型只能是整型或者字符型;case 里如果没有 break,那么程序会一直向下执行;与 if 语句相比,对于多条件判断时,优点:switch 的结构清晰,缺点:switch 不能判断区间
#include <iostream>
using namespace std;
int main()
{
int score = 0;
cout << "请给你所听的音乐打分(范围为 1 ~ 10):";
cin >> score;
switch (score)
{
case 10:
case 9:
case 8:
cout << "超好听!" << endl;
break;
case 7:
case 6:
case 5:
cout << "还不错!" << endl;
break;
case 4:
case 3:
cout << "待提高!" << endl;
break;
case 2:
case 1:
cout << "不好听!" << endl;
break;
}
system("pause");
return 0;
}
循环结构
作用:满足循环条件,执行循环语句
语法:while(循环条件){循环语句}
注意:循环条件一直为 true 将造成死循环
#include <iostream>
using namespace std;
int main()
{
int num1 = 0;
while (true)
{
cout << num1;
num1++;
}
system("pause");
return 0;
}
案例:输出 0 ~ 100 之间的整数
#include <iostream>
using namespace std;
int main()
{
int num1 = 1;
while (num1 < 100)
{
cout << num1 << endl;
num1++;
}
system("pause");
return 0;
}
案例:猜数字
#include <iostream>
using namespace std;
#include <ctime>
int main()
{
srand((unsigned int)time(NULL));
int num = rand() % 100 + 1;
int num1 = 0;
while (num1 != num)
{
cout << "你猜的数字为:";
cin >> num1;
if (num1 > num)
{
cout << "你猜的数字偏大!" << endl;
}
else if (num1 < num)
{
cout << "你猜的数字偏小!" << endl;
}
else
{
cout << "猜对了!" << endl;
}
}
system("pause");
return 0;
}
|