三目运算符
// 表达式1? 表达式2:表达式3
// 如果表达式1为真 执行表达式 2 并且返回表达式2 的结果
// 如果表达式1为假 执行表达式 3 并且返回表达式3 的结果
#include <iostream>
using namespace std;
int main(){
int a = 100;
int b = 200;
int c = 300;
// int max = 0;
// if (a > b)
// max = a;
// else
// max = b;
// cout << max <<endl;
cout << (a > b ? a : b) <<endl;
// 三个数的最大值
cout << ((a > b ? a : b) > c ? (a > b ? a : b) : c)<<endl;
}
switch语句
语法
switch(表达式){
case 结果1: 执行语句;
break;
case 结果2: 执行语句;
break;
case 结果3: 执行语句;
break;
...
default: 执行语句;
break;
}
#include <iostream>
using namespace std;
int main(){
// 10 / 9 经典之作
// 8 / 7 非常好
// 6 / 5 一般般
// 5 以下 烂片
int score = 8;
switch (score) {
case 10:
case 9:
cout<< " very very very very good"<<endl;
break;
case 8:
case 7:
cout<< "good"<<endl;
break;
case 6:
case 5:
cout<< "normal"<<endl;
break;
default:
cout<< "bad"<<endl;
break;
}
// 每一个case有执行语句的都要写 break 要防止case穿透
}
注意1:switch语句中表达式类型只能是整型或者字符型
注意2:case里如果没有break,那么程序会一直向下执行 case穿透
总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间
循环结构
while循环
语法
while(循环条件){
循环语句
}
```c
#include <iostream>
using namespace std;
int main(){
int end;
int i = 1;
int sum = 0;
cout <<"please input calculate number: " <<sum <<endl;
cin >> end;
while (i <= end){
sum += i;
i++;
}
cout <<"sum = " <<sum <<endl;
}
do while循环
语法:
do{循环语句} while(循环条件)
与while的区别 :do while循环会先执行一次循环, 再去判断循环条件
#include <iostream>
using namespace std;
int main(){
int i = 0;
do{
cout <<"hello"<<i <<endl;
i ++;
// } while (i<0);
} while (i<10);
}
1、rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。
2、如果你要产生0~99这100个整数中的一个随机整数,可以表达为:int num = rand() % 100;
这样,num的值就是一个0~99中的一个随机数了。
3、如果要产生1~100,则是这样:int num = rand() % 100 + 1;
4、总结来说,可以表示为:int num = rand() % n +a;
其中的a是起始值,n-1+a是终止值,n是整数的范围。
5、一般性:rand() % (b-a+1)+ a ; 就表示 a~b 之间的一个随机整数。
#include <iostream>
#include <ctime>
using namespace std;
int main(){
// cout <<(unsigned int )time(NULL)<<endl;
srand((unsigned int )time(NULL));
// srand(666); // 固定随机种子
int generate_number;
generate_number = rand()%100 +1;
cout <<generate_number<<endl;
int guess_number;
int count = 0;
while (count <= 5){
count++;
cout << "please input your guess number"<<endl;
cin>>guess_number;
if (guess_number > generate_number){
cout << "too large --"<< (5 - count) << " left"<<endl;
}
else if (guess_number < generate_number){
cout << "too small -- "<< (5 - count) << " left"<<endl;
}else{
cout << "correct !!! "<<endl;
break;
}
}
}
for 循环
语法
// for 和 while 可以互相转化
for (初始表达式; 条件表达式; 步进表达式) {
循环体
}
#include <iostream>
using namespace std;
int main(){
// for (初始表达式; 条件表达式; 步进表达式) {
// 循环体
// }
int sum = 0;
for(int i=1; i <=100; i++){
sum += i;
}
cout<< "sum = " << sum <<endl;
}
for的死循环
#include <iostream>
using namespace std;
int main(){
for(;;){
cout<< "sum = " <<endl;
}
}