第四章:选择、循环
第一节:选择if-else
1. 关系表达式与逻辑表达式
if-else的判断条件结果还是真与假,即1或0,一般是关系表达式或逻辑表达式。
算术运算符的优先级高于关系运算符,关系运算符的优先级高于逻辑与和逻辑或运算符。
2. if-else语句
#include <stdio.h>
int main() {
int i;
while (scanf("%d",&i)){
if(i>0){
printf("i is bigger than 0\n");
} else{
printf("i is not bigger than 0\n");
}
}
return 0;
}
F:\Computer\Project\practice\4\4.1-if_else\cmake-build-debug\4_1_if_else.exe
8
i is bigger than 0
-1
i is not bigger than 0
m
进程已结束,退出代码为 0
第二节:循环
1. while循环
先判断表达式,后执行语句。当表达式的值非0时,就会执行语句,从而实现多次执行的效果。
为程序进入死循环,在语句中需要有让表达式趋近于假的操作来使程序跳出循环。
#include <stdio.h>
int main() {
int i=1,total=0;
while (i<=100){
total+=i;
i+=1; // 让表达式趋近于假的操作
}
printf("total=%d\n",total);
return 0;
}
F:\Computer\Project\practice\4\4.2-while\cmake-build-debug\4_2_while.exe
total=5050
进程已结束,退出代码为 0
2. for循环
for循环不仅可以用于循环次数已经确定的情况,还可以用于循环次数不确定而只给出循环结束条件的情况,完全可以代替while循环语句。
语法:
for(表达式1;表达式2;表达式3)语句;
for循环语句中必须且只能由两个分号。
#include <stdio.h>
int main() {
int i,total;
for(i=1,total=0;i<=100;i++){
total+=i;
}
printf("toatl=%d\n",total);
return 0;
}
F:\Computer\Project\practice\4\4.2-for\cmake-build-debug\4_2_for.exe
toatl=5050
进程已结束,退出代码为 0
3. continue语句
continue语句的作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行是否执行下一次循环的判断。
对1-100的奇数求和。
#include <stdio.h>
int main() {
int i,total;
for (i=1,total=0;i<=100;i++) {
if(i%2==0){
continue;
}
total+=i;
}
printf("total=%d\n",total);
return 0;
}
F:\Computer\Project\practice\4\4.2-continue\cmake-build-debug\4_2_continue.exe
total=2500
进程已结束,退出代码为 0
4. break语句
break语句的作用是结束整个循环过程,不在判断执行循环的条件是否成立。
#include <stdio.h>
int main() {
int i,total;
for (i=1;i<=100;i++) {
if(total>2000){
break;
}
total+=i;
}
printf("total=%d,i=%d\n",total,i);
return 0;
}
F:\Computer\Project\practice\4\4.2-break\cmake-build-debug\4_2_break.exe
total=2032,i=64
进程已结束,退出代码为 0