C/C++最基本的程序结构:顺序结构、选择结构、循环结构。
- 顺序结构:按照顺序执行代码,不发生跳转。
- 选择结构:根据是否满足条件,选择性地去执行代码。
- 循环结构:根据是否满足条件,循环执行某段代码。
1.选择结构
1.1 if语句
if语句有以下几种形式:
- 单行格式if语句
- 多行格式if语句
- 多条件if语句
- 嵌套if语句
1.1.1 单行格式if语句
if(条件)
{
满足条件执行的语句;
}
示例
#include <iostream>
using namespace std;
int main()
{
int num = 0;
cout << "请输入一个数字:" << endl;
cin >> num;
if (num > 10) //判断条件是否满足
{
cout << "该数大于10" << endl;
}
system("pause");
return 0;
}
运行结果
请输入一个数字:
89
该数大于10
1.1.2 多行格式if语句
if(条件)
{
满足条件执行的语句;
}
else
{
不满足条件时执行的语句;
}
示例
#include <iostream>
using namespace std;
int main()
{
int num = 0;
cout << "请输入一个数字:" << endl;
cin >> num;
if (num > 10) //条件满足
{
cout << "该数大于10" << endl;
}
else //条件不满足
{
cout << "该数小于或等于10" << endl;
}
system("pause");
return 0;
}
运行结果
请输入一个数字:
10
该数小于或等于10
1.1.3 多条件if语句
if(条件1)
{
满足条件1所执行的语句;
}
else if(条件2)
{
满足条件2所执行的语句;
}
……
else
{
以上条件都不满足时所执行的语句;
}
示例
#include <iostream>
using namespace std;
int main()
{
int num = 0;
cout << "请输入一个数字:" << endl;
cin >> num;
if (num > 10 && num <= 50) //判断条件是否满足
{
cout << "该数大于10,小于或等于50" << endl;
}
else if(num > 50 && num <= 100)
{
cout << "该数大于50,小于或等于100" << endl;
}
else if (num > 100)
{
cout << "该数大于100" << endl;
}
else
{
cout << "该数小于或等于10" << endl;
}
system("pause");
return 0;
}
运行结果
请输入一个数字:
88
该数大于50,小于或等于100
1.1.4 嵌套if语句
//嵌套if语句就是在if语句中再使用if语句
if(条件1)
{
if(满足条件1的前提下,又满足条件2)
{
条件2;
……
}
……
}
……
示例
#include <iostream>
using namespace std;
int main()
{
//大于等于60分:及格;
//60-70:D;
//70-80:C;
//80-90:B;
//90-100:A
int score = 0;
cout << "请输入分数:" << endl;
cin >> score;
if (score >= 60) //判断条件是否满足
{
if (score < 90) //60<=score<90
{
if (score < 80) //60<=score<80
{
if (score < 70) //60<=score<70
{
cout << "D" << endl;
}
else //70<=score<80
cout << "C" << endl;
}
else //80<=score<90
cout << "B" << endl;
}
else //大于等于90分
cout << "A" << endl;
}
else
{
cout << "不及格" << endl;
}
system("pause");
return 0;
}
请输入分数:
79
C
1.2 三目运算符
语法:表达式1 ? 表达式2 : 表达式3
若表达式1为真,则执行表达式2,否则执行表达式3。
注:在C++中三目运算符返回的是变量的话可以继续赋值
示例
#include <iostream>
using namespace std;
int main()
{
//创建三个变量a,b,c
//将a、b中较大的那个赋值给c
int a = 0;
int b = 0;
int c = 0;
cout << "请输入a的值:" << endl;
cin >> a;
cout << "请输入b的值:" << endl;
cin >> b;
c = a > b ? a : b;
cout << "c=" << c << endl;
//在C++中三目运算符返回的是变量的话可以继续赋值
a > b ? a : b = 100;
cout << "a=" << a << endl;
cout << "b=" << b << endl;
system("pause");
return 0;
}
运行结果
请输入a的值:
8
请输入b的值:
9
c=9
a=8
b=100
1.3 switch语句
//作用:执行多条件分支语句。
switch(表达式)
{
case 结果1: 执行语句;break; //利用break关键字退出当前循环
case 结果2: 执行语句;break;
……
default: 执行语句;break;
}
注:用switch判断时,只能是整型或者字符型,不可以是一个区间。
示例
#include <iostream>
using namespace std;
int main()
{
//给电影进行评分
//1-2 烂片
//3 一般
//4 非常好
//5 经典
int score = 0;
cout << "请给电影打分:" << endl;
cin >> score;
switch (score)
{
case 1:cout << "您认为此电影是烂片" << endl; break;
case 2:cout << "您认为此电影是烂片" << endl; break;
case 3:cout << "您认为此电影一般" << endl; break;
case 4:cout << "您认为此电影非常好" << endl; break;
case 5:cout << "您认为此电影是经典" << endl; break;
default:cout << "不在分数范围,请重新输入分数" << endl; break;
}
system("pause");
return 0;
}
请给电影打分:
4
您认为此电影非常好
2.循环结构
2.1 while循环语句
作用:满足循环条件,执行循环语句
语法:while(循环条件){循环语句}
注:避免死循环
示例
#include <iostream>
using namespace std;
int main()
{
//打印数字0-9
int num = 0;
while (num < 10)
{
cout << num << endl;
num++;
}
system("pause");
return 0;
}
运行结果
0
1
2
3
4
5
6
7
8
9
2.2 do…while循环语句
语法:do{循环语句} while(循环条件);
do…while与while的区别:do…while会先执行一次循环语句,再判断循环条件
#include <iostream>
using namespace std;
int main()
{
//打印数字0-9
int num = 0;
do
{
cout << num << endl;
num++;
} while (num < 10);
system("pause");
return 0;
}
2.3 for循环语句
//for循环语法:
for(初始化表达式;循环条件表达式;循环后操作表达式)
{
循环语句;
}
示例
#include <iostream>
using namespace std;
int main()
{
//打印数字0-9
for (int num = 0; num < 10; num++)
{
cout << num << endl;
}
system("pause");
return 0;
}
2.4 嵌套循环
作用:在循环体中再嵌套一次循环,解决一些实际问题
示例
#include <iostream>
using namespace std;
int main()
{
//打印10*10的星图矩阵
for (int i = 0; i < 10; i++) //外层循环
{
for (int j = 0; j < 10; j++) //内层循环
{
cout << "* ";
}
cout << endl; //换行
}
system("pause");
return 0;
}
运行结果
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *