六、条件与循环
1. 条件判断
1. if语句
条件判断即是生活中的对某个事物进行判断,比如:父子间对此次考试成绩进行约定,如果超过90分,则可以自由活动一天,如果超过80分,可以休息半天,如果低于80分,则要乖乖去 写作业。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | #include <iostream>
int main (){
std::cout << "请输入此次考试的成绩:" << std::endl;
int score ;
std::cin >> score;
if( score > 90){
std::cout << "可以休息一天" << std::endl;
}else if(score > 80){
std::cout << "可以休息半天" << std::endl;
}else{
std::cout << "乖乖去写作业" << std::endl;
}
return 0 ;
}
|
2. switch语句
许多语言中都包含switch,比如:java 、javascript 、php 等,而python是个例外,python没有switch。,实际上switch
和 if
语句块很相似, 它是完全的等价条件判断,但是一旦满足某个case
的条件,那么其他case
就不会再进行判断。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 | #include <iostream>
int main (){
std::cout << "请输入此次考试的成绩评级" << std::endl;
char level ;
std::cin >> level;
switch (level){
case 'A':
std::cout << "优秀" << std::endl;
break;
case 'B':
std::cout << "良好" << std::endl;
break;
case 'C':
std::cout << "及格" << std::endl;
break;
case 'D':
std::cout << "仍需继续努力" << std::endl;
break;
default:
std::cout << "输入错误。" << std::endl;
break;
}
return 0 ;
}
|
2. 运算符操作
1. 关系运算符
表示大小、相等操作的运算符,python和c++表示方法是一样的。
Operator |
Python |
C++ |
equal |
== |
== |
not equal |
!= |
!= |
greater than |
> |
> |
less than |
< |
< |
greater than or equal |
>= |
>= |
less than or equal |
<= |
<= |
2. 逻辑运算符
有时候需要对多个条件进行一起判断,比如:前面的考试约定,不仅要考察语文的成绩还要考察数学的成绩,不仅仅是单科成绩了。
Operator |
Python |
C++ |
并且 |
and |
&& |
或者 |
or |
|| |
非(取反) |
not |
! |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | #include <iostream>
int main (){
int chinese_score ;
int math_score ;
std::cout << "请输入此次语文考试的成绩:" << std::endl;
std::cin >> chinese_socre;
std::cout << "请输入此次数学考试的成绩:" << std::endl;
std::cin >> math_score;
if( chinese_socre > 90 && math_score > 90){
std::cout << "可以休息一天" << std::endl;
}else if(score > 80 && math_score > 80){
std::cout << "可以休息半天" << std::endl;
}else{
std::cout << "乖乖去写作业" << std::endl;
}
return 0 ;
}
|
3. 三元运算符
一般来说,非真即假的情况下,如果表达式比较简单,通常会采用三元运算符来实现。在相比之下,c++的三元运算符比python的要简单些。比如下面的例子:如果考试成绩大于90,评为A ,否则评为B,此时针对一个条件的判断,只有两种结果,那么使用三元表达式在简洁程度上要胜过 if
语句。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | #include <iostream>
int main (){
int score;
std::cout << "请输入此次语文考试的成绩:" << std::endl;
std::cin >> score;
/*
//python的三元表达式:
result = 'A' if 100 > 90 else 'B'
print(result)
*/
//c++
char result = score > 90 ? 'A' : 'B';
std::cout << "您的语文成绩评级为:" << result <<std::endl;
return 0 ;
}
|
3. 循环控制
如果需要让某件事重复执行多次,那么循环操作再合适不过了。在c++里面,循环操作有:while
| do-while
| for
三种实现方式 。 比如模拟路口信号灯闪烁场景
1. while
1
2
3
4
5
6
7
8
9
10
11
12
13 | #include <iostream>
int main (){
int count = 0 ;
while(count < 10){
std::cout << "红灯还在亮着..." << std::endl;
//单位是毫秒
Sleep(1000);
cout++;
}
return 0 ;
}
|
2. continue 和 break
有时候我们需要对循环的每一次操作,都做一次过滤检查,满足条件的让循环跳过当前,进行下一次循环,或者直接退出循环。在大部分编程语言里面, continue和 break正扮演着这样的角色。比如下面打印1 到 20 的偶数。 如果打印到了16,则直接退出整个循环。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 | #include <iostream>
int main (){
int number = 1 ;
while(number <= 20){
if(number == 16){
break;
}
//满足条件,表示当前的number是奇数。
if(number % 2 != 0 ){
continue;
}
std::cout << "当前打印的数字是: " << number << std::endl;
number++;
}
std::cout << "循环已结束! "<< std::endl;
return 0 ;
}
|
3. do-while
do-while结构与while差不多,区别只在于前者是上来先执行操作后判断,后者是先判断再执行循环操作
1
2
3
4
5
6
7
8
9
10
11
12
13 | #include <iostream>
int main (){
int count = 0 ;
do{
std::cout << "红灯还在亮着..." << std::endl;
//单位是毫秒
Sleep(1000);
cout++;
}while(cout < 10);
return 0 ;
}
|
4. for
在众多循环语句中,for
循环是使用频率最高的一种。
| #include <iostream>
int main (){
for(int cout = 0 ; cout < 10 ; cout ++){
std::cout << "红灯还在亮着..." << std::endl;
//单位是毫秒
Sleep(1000);
}
return 0 ;
}
|