一、选择结构
1.1 if语句
作用:执行满足条件的语句
if语句的三种形式
- 单行格式if语句
- 多行格式if语句
- 多条件的if语句
#include <iostream>
using namespace std;
int main(){
//选择结构 单行if语句
//用户输入分数,如果分数>600,视为考上一本大学,在屏幕输出
int score;
cout << "请输入您的分数:";
cin >> score;
//注意事项 if条件后面不要加;分号
if (score > 600) {
cout << "恭喜您考上一本大学!" << endl;
}
//选择结构 多行if语句
//用户输入年龄,如果年龄>=18,则输出"你已经成年了",否则输出"你还未成年"
int age;
cout << "请输入您的年龄:";
cin >> age;
if (age >= 18) {
cout << "你已经成年了" << endl;
}
else {
cout << "你还未成年" << endl;
}
//多条件if语句
//输入一个考试分数 如果大于600分,视为考上一本大学,在屏幕输出
//大于500,视为考上二本大学,在屏幕输出
//大于400,视为考上三本大学,在屏幕输出
//小于400,视为未考上大学,在屏幕输出
int exam_score;
cout << "请输入您的考试分数:";
cin >> exam_score;
if (exam_score > 600) {
cout << "恭喜您考上一本大学!" << endl;
}
else if (exam_score > 500) {
cout << "恭喜您考上二本大学!" << endl;
}
else if (exam_score > 400) {
cout << "恭喜您考上三本大学!" << endl;
}
else {
cout << "很遗憾,未考上大学!" << endl;
system("pause");
return 0;
}
1.2 三目运算符
作用:通过三目运算符实现简单的判断
语法:表达式1?表达式2 :表达式3
- 如果表达式1值为真,执行表达式2,并返回表达式2的结果
- 如果表达式1值为假,执行表达式3,并返回表达式3的结果
#include <iostream>
using namespace std;
int main() {
// 三目运算符
//创建3个变量 a, b, c
//将a和b进行比较,将变量大的值赋给c
int a = 10;
int b = 20;
int c = 0;
c = (a > b)? a : b; //如果a大于b,则c等于a,否则c等于b
cout<<"c的值为"<<c<<endl;
//在C++中三目运算符返回的是变量,可以继续赋值
(a > b ? a : b) = 100;
cout<<"a的值为"<<a<<endl;
cout<<"b的值为"<<b<<endl;
system("pause");
return 0;
}
1.3 Switch语句
作用:执行多条件分支语句
#include <iostream>
using namespace std;
int main()
{ //swicth语句
//给电影进行打分
//10~9 经典
//8~7 很好
//6~5 还行
//4~3 较差
//2~1 很差
//0 未评分
int score=0;
cout << "请输入电影的评分:";
cin >> score;
cout << "您的评分是:" << score << endl;
switch (score)
{
case 10:
case 9:
cout << "经典"<< endl;
break;
case 8:
case 7:
cout << "很好" << endl;
break;
case 6:
case 5:
cout << "还行" << endl;
break;
case 4:
case 3:
cout << "较差" << endl;
break;
case 2:
case 1:
cout << "很差" << endl;
break;
case 0:
cout << "未评分" << endl;
break;
default:
cout << "输入错误" << endl;
break;
}
system("pause");
return 0;
}
二、循环结构
2.1.1while循环语句
作用:满足循环条件,执行循环语句。
语法:while(循环条件){循环语句}。
解释:只要循环条件为真,就执行循环语句。
注意:在执行循环语句的时候,程序必须提供跳出循环的出口,否则出现死循环。
#include <iostream>
using namespace std;
int main()
{
//while循环
//在屏幕中打印出0~9
int i = 0;
while (i < 10) {//循环条件
cout << i << endl;
i++;
}
system("pause");
return 0;
}
2.1.2 猜数字案例
#include <iostream>
using namespace std;
//time系统时间头文件包含
#include <ctime>
int main()
{
//添加随机数种子 作用利用当前系统时间生成随机数,防止每次随机数都一样
srand((unsigned int)time(NULL));
//1.系统生成随机数(1~100)
int num = rand() % 100 + 1;//生成1~100之间的随机数
//cout << "系统生成的随机数为:" << num << endl;
//2.玩家进行猜测
int value = 0;//玩家猜测的数字
while (num != value) {
cin >> value;
//3.判断玩家的猜测
if (value > num) {
cout << "猜测的数字太大了!" << endl;
}
else if (value < num) {
cout << "猜测的数字太小了!" << endl;
}
else {
cout << "恭喜你猜对了!" << endl;
return 0;
}
}
//猜对 退出游戏
//猜错 提示猜的结果 过大或者过小 重新返回第2步
cout << "游戏结束!" << endl;
system("pause");
return 0;
}
2.2.1do...while循环
作用:满足循环条件,执行循环语句
语法:do{循环语句} while{循环条件}
注意:与while的区别在于do...while会先执行一次循环语句,再判断循环条件
#include<iostream>
using namespace std;
int main() {
//do-while循环
//在屏幕中输出0~9这10个数字
int i = 0;
do {
cout << i << endl;
i++;
}
while (i < 10);
// do-while 和 while 的区别在于 do-while会先执行一次循环语句
// 然后再判断条件是否成立,如果成立,则继续执行循环语句,否则退出循环。
system("pause");
return 0;
}
2.2.2 案例水仙花数
#include<iostream>
using namespace std;
int main() {
//水仙花数
int i = 100;
do {
int a = i % 10;//取个位数
int b = (i / 10) % 10;//取十位数
int c= i / 100;//取百位数
if (a*a*a + b*b*b + c*c*c == i) {
cout << i << endl;
}
i++;
}while (i < 1000);
2.3.1 for循环
作用: 满足循环条件,执行循环语句
语法:for(起始表达式;条件表达式;末尾循环体){循环语句;}
#include<iostream>
using namespace std;
int main() {
//for循环
//从数字0打印到数字9
for(int i = 0; i < 10; i++){
cout << i << endl;
}
system("pause");
return 0;
}
2.3.2 案例敲桌子
#include<iostream>
using namespace std;
int main() {
//敲桌子
for (int i = 1; i <= 100; i++) {
if (i % 10 == 7) {
cout << "敲桌子" << i << endl;
}
else if(i/10%10==7){
cout << "敲桌子" << i << endl;
}
else if (i % 7 == 0) {
cout << "敲桌子" << i << endl;
}
else {
cout << i << endl;
}
}
system("pause");
return 0;
}
2.4.1 嵌套循环
作用:在循环体中再嵌套一层循环,解决一切实际问题
#include<iostream>
using namespace std;
int main() {
//循环嵌套打印星图
//打印一行星图
//外层执行一次 内层执行1周
for (int i = 0; i < 10; i++) {//外层循环
for (int j = 0; j < 10; j++) {//内层循环
cout << "* ";
}
cout << endl;
}
system("pause");
return 0;
}
2.4.2 案例乘法口诀表
#include<iostream>
using namespace std;
int main() {
// 9*9乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
cout << i << "x" << j << "=" << i * j << "\t";
}
cout << endl;
}
system("pause");
return 0;
}
2.5 跳转语句 -break
作用:用于跳出选择结构或者循环结构
break的使用时机
- 出现在switch条件语句中,作用是终止case并跳出switch
- 出现在循环语句中,作用是跳出当前的循环语句
- 出现在嵌套循环中,跳出最近的内层循环语句
#include<iostream>
using namespace std;
int main() {
//1.出现在switch条件语句中,作用是终止case并跳出switch
cout << "请选择副本的难度" << endl;
cout << "1.简单" << endl;
cout << "2.普通" << endl;
cout << "3.困难" << endl;
int select = 0; //创建一个选择结果的变量
cin >> select;//输入选择结果
switch (select) {
case 1://选择简单难度
cout << "你选择了简单难度" << endl;
break;
case 2: //选择普通难度
cout << "你选择了普通难度" << endl;
break;
case 3 : //选择困难难度
cout << "你选择了困难难度" << endl;
break;
default: //输入有误
cout << "输入有误,请重新输入" << endl;
break;
}
//2.出现在循环语句中,作用是跳出当前的循环语句
for (int i = 0; i < 10; i++) {
//判断i是否等于5,如果等于5,跳出当前循环语句
if (i == 5) {
break;
}
cout << i << endl;
}
//3.出现在嵌套循环中,跳出最近的内层循环语句
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (j == 5) {
break; //跳出内层循环语句
}
cout << "* ";
}
cout << endl;
}
system("pause");
return 0;
}
2.6 跳转语句 -continue
作用:在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环(break会跳出循环,continue不会跳出循环)
#include<iostream>
using namespace std;
int main() {
//continue 语句的作用是跳过当前循环的剩余语句,直接开始下一轮循环。
for (int i = 0; i <= 100; i++) {
if (i % 2 == 0) { //如果i是偶数,则跳过当前循环的剩余语句,直接开始下一轮循环。
continue; //跳过当前循环的剩余语句,直接开始下一轮循环。
}
cout << i << endl;
}
system("pause");
return 0;
}
2.7 跳转语句 -goto
作用:可以无条件跳转语句
语法:goto标记;
解释:如果标记的名称存在,执行带goto语句时,会跳转到标记位置
#include <iostream>
using namespace std;
int main() {
//goto语句
cout << "1、xxxxx" << endl;
cout << "2、yyyyy" << endl;
goto flag;
cout << "3、zzzzz" << endl;
cout << "4、wwwww" << endl;
flag:
cout << "5、uuuuu" << endl;
cout << "6、iiiii" << endl;
system("pause");
return 0;
}