目录
4.1.2 三目运算符
作用: 通过三目运算符实现简单的判断
语法:表达式1 ? 表达式2 :表达式3
解释:
如果表达式1的值为真,执行表达式2,并返回表达式2的结果;
如果表达式1的值为假,执行表达式3,并返回表达式3的结果。
#include <iostream>
using namespace std;
int main(){
int a = 10;
int b = 20;
int c = 0;
c = a > b ? a : b; //给c赋值
cout <<"c=" << c<<endl;
//C++中三目运算符返回的是变量,可以继续赋值
(a>b?a:b) = 100;
cout << "a=" << a <<endl;
cout << "b=" << b <<endl;
cout << "c=" << c <<endl;
return 0;
}
c=20
a=10
b=100
c=20
4.1.3 switch语句
作用:执行多条件分支语句
语法:
switch(表达式)
{
case 结果1:执行语句;break;
case 结果2:执行语句;break;
...
default:执行语句;break;
}
#include <iostream>
using namespace std;
int main(){
int s = 0;
cout <<"score the film" << endl;
while(1){
cin >> s;
switch (s){
case 10:
case 9:cout << "classic" << endl;break;
case 8:cout << "excellent" << endl;break;
case 7:cout << "good" << endl;break;
case 6:cout << "just so so" << endl;break;
default: cout << "bad" << endl;break;
}
}
return 0;
}
注意1:switch语句中表达式类型只能是整型或者字符型
注意2:case里如果没有break,那么程序会一直向下执行
总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间
while循环练习案例:==猜数字==
案例描述:系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错,提示玩家数字过大或过小,如果猜对恭喜玩家胜利,并且退出游戏。
随机数函数
在实际应用中,通常需要要将随机数的范围限制在 1 到某个值 max 之间,则可以使用以下公式:
int var = rand() % max + 1;
求余数运算符(%)可以获得整除之后的余数。如当 max 为6时,余数将是 0 〜 5,给余数加 1 即可转换为 1 ~ 6。
#include <iostream>
using namespace std;
int main(){
int a;
int n = rand()%100+1;
cout << "Enter the number" << endl;
cin >> a;
while(a!=n){
if(a>n) cout << "The number you enter is too bigger" << endl;
else cout << "The number you enter is too small" << endl;
cin >> a;
}
cout<< "You are right!" << endl;
return 0;
}
4.2.2 do...while循环语句
作用: 满足循环条件,执行循环语句
语法: do{ 循环语句 } while(循环条件);
注意:与while的区别在于==do...while会先执行一次循环语句==,再判断循环条件
4.2.4 嵌套循环
打印图片
#include <iostream>
using namespace std;
int main(){
int i,j;
for(i=0;i<10;i++){
for(j=0;j<10;j++){
cout << "*" << " ";
}
cout << endl;
}
return 0;
}
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
- 内循环打印完后才换行,又 cout << ""<< endl 本身就带有换行的意思,故可把endl去掉改为cout << "" ;
- 若只需换行,则直接cout <<endl 即可。
练习案例:乘法口诀表
案例描述:利用嵌套循环,实现九九乘法表
#include <iostream>
using namespace std;
int main(){
int i,j;
for(i=1;i<=9;i++){
for(j=1;j<=i;j++){
cout << j<<" * " <<i <<" = " <<i*j<<" ";
}
cout << endl;
}
return 0;
}
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
4.3.3 goto语句
作用:可以无条件跳转语句
语法: goto 标记;
解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置
注意:在程序中不建议使用goto语句,以免造成程序流程混乱