C语言的流程控制
来源:互联网 发布:哪个象棋软件好 编辑:程序博客网 时间:2024/06/01 10:26
C语言的流程控制
选择结构之if语句
用法一: if( ){ }
#include<stdio.h>
int main(){
int a=3;
if (a>2) {
printf("%d\n",a);
}
return 0;
}
用法二:if( )else{ }
#include<stdio.h>
int main(){
int a=0;
if (a>2) {
printf("%d\n",a);
}else{
printf("a不大于2\n");
}
return 0;
}
用法三:if( )else if( ){ }满足第一种条件执行第一种方案,如果第一种条件不满足,继续判断是否满足第二种条件,不满足继续判断接下来的别的条件.
但:只要有一个满足了,接下来的条件判断不会执行
#include<stdio.h>
int main(){
int a=-2;
if (a>2) {
printf("%d\n",a);
}else if(a<1){
printf("a小于1\n"); //打印结果 a小于1
}else if(a<0){
printf("a小于0\n");
}
return 0;
}
用法四:if( )else if( ){ }else( )
满足第一中条件执行第一种方案,如果第一种条件不满足,继续判断是否满足第二种条件,不满足继续判断接下来的别的条件.
如果上面的条件都不满足,则会执行else{ }里的代码.
但:只要有一个满足了,接下来的条件判断及else都不会执行.
#include<stdio.h>
int main(){
int a=1;
if (a>2) {
printf("%d\n",a);
}else if(a<1){
printf("a小于1\n");
}else if(a<0){
printf("a小于0\n");
}else{
printf("上面的条件都不满足!\n"); //打印结果:上面的条件都不满足
}
return 0;
}
用法五:if( );如果条件成立执行if后面的第一个语句(语句结束的标志是 ; )从第二句开始,跟if语句没有关系了.
只要出现 ; 就算一个语句.
#include<stdio.h>
int main(){
int a=1;
if (a>2)
printf("%d\n",a);
printf("上面的条件都不满足!\n"); //打印结果:上面的条件都不满足
return 0;
}
特点:
1.一次if语句只能执行给出的所有操作中的一个.
2.if( );这种用法时if语句只有紧跟后面一句有效.(读到下一个 ; 结束).且不能定义变量(不能明确定义的变量的作用域范围).
#include<stdio.h>
int main(){
int a=3;
if (a>2)
int b=0; //不能明确b的作用域范围
printf("%d\n",a);
return 0;
}
3.除了if( );这种用法,所有的( )与{ }之间不能有 ; 号.
4.if(条件判断{ }里main的条件判断如果是与常量的等于判断,则常量写在前面(建议).
#include<stdio.h>
int main(){
int a=3;
if (a=2){
printf("a等于2\n"); //会出现警告,条件编译a=2为真;打印结果 a等于2
}else{
printf("a不等于2\n");
}
return 0;
}
选择结构之switch语句
根据判断的结果(真或假)决定执行给出的具体操作
#include<stdio.h>
int main(){
int a=0;
switch (a) {
case 1:
printf("a=1\n");
break;
case 2:
printf("a=2\n");
break;
case 3:
printf("a=3\n");
break;
default:
printf("没有匹配的\n"); //执行结果:没有匹配的
break;
}
}
特点:
1.条件结果只能是整数,而case只能是整型常量,注意:char 'a';
2.break可有可无,有则执行完跳出,没有则继续执行,直到退到下一个break或执行完.
3.default可有可无,有则如果条件都不满足,会执行这句,无则条件都不满足,执行结束.
4.case下面要定义变量必须加{ }(否则变量的作用域不明确),且case后的常量值不能重复.
5.switch语句可以全部用if语句替代,但if语句不能全用switch替代.
循环结构之while与do while语句
当满足条件时进入循环,循环判断,知道不满足条件跳出循环.
while循环
#include<stdio.h>
int main(){
int a=0;
while (a<10) {
a++;
printf("第%d次helloworld\n",a);
}
return 0;
}
do while
#include<stdio.h>
int main(){
int a=0;
do{
a++;
printf("第%d次helloworld\n",a);
}while (a<0); //打印结果:第1次helloworld
}
while和do while区别:
满足条件才会执行,do while 无论条件满足与否,都至少执行一次
特点:
1.只有满足条件循环才会执行.
2.注意死循环的出现会一直循环执行下去,除非程序强制退出.control+c终止程序
3.如果碰到continue,则跳出本次循环继续下一次判断,如果条件成立继续执行循环.
#include<stdio.h>
int main(){
int a=0;
while (a<10) {
if (5==a) {
continue;
a++; //a++不会执行,因为在执行continue后跳出循环,不会执行a++语句;
}
printf("第%d次helloworld\n",a);
a++;
}
return 0;
}
4.如果碰到break无论条件满足与否,循环立即结束.
#include<stdio.h>
int main(){
int a=0;
while (a<10) {
if (5==a) {
a++;
continue;
}
if(8==a){
break; //循环立即结束
}
printf("第%d次helloworld\n",a+1);
a++;
}
return 0;
5.continue与break跳出的都是当前所在的循环作用域.
#include<stdio.h>
int main(){
int a=0;
int b=0;
while(b<3){
while (a<10) {
if (5==a) {
a++;
continue;
}
if(8==a){
break; //内循环立即结束
}
printf("第%d次helloworld\n",a+1);
a++;
}
if (b==2) {
b++;
break; //外循环立即结束
}
b++;
printf("外循环执行了%d次\n",b);
}
return 0;
- }
6.do while至少执行一次,而while不一定
control +C 是强制退出应用
循环结构之for语句
for循环中定义的变量,只在for循环中有效
for循环第一个语句:只会执行一次,一般用于初始化变量.
#include<stdio.h>
int main(){
for (int i=1;int a=2; i<=10; i++) { //int a=2 错误
printf("第%d次helloword\n",i);
}
return 0;
}
#include<stdio.h>
int main(){
for (int i=1,int a=2; i<=10; i++) { //int i=1,int a=2 错误
printf("第%d次helloword\n",i);
}
return 0;
}
#include<stdio.h>
int main(){
for (int i=1,a=2; i<=10; i++) { //正确
printf("第%d次helloword\n",i);
}
return 0;
}
for循环第二个语句注意:
这个必须要有一个判断结果,如果为空,表示默认为真,则是一个死循环
for循环第三个语句注意:第三个语句作用域不在{ }内.
break和continue与while循环是一致的.
循环嵌套:如果子循环本身定义了变量,用自己的,如果本身作用域没有定义变量,只会去上一层的作用域去寻找,以此类推(就近原则)
#include<stdio.h>
int main(){
for(int i=0;i<2;i++){
for (;i<3; i++) { //没有定义变量i
printf("内循环是第%d行helloword\n",i);
}
printf("外循环是第%d行helloword\n",i);
}
/*运行结果:
内循环是第0行helloword
内循环是第1行helloword
内循环是第2行helloword
外循环是第3行helloword
*/
return 0;
}
break与continue区别:
1.break:可以用于switch和while,do while 和for 循环,但continue不能用于switch
2.break是结束当前循环语句,continue是结束本次循环,继续执行下一次循环.
相同点:在break与continue相同作用域下,二者下面都不能放代码,因为不会执行.还有二者都是关键字.
for语句和while语句相同点及区别:
1.二者都是去根据条件反复执行相同的代码.
2.区别是:二者结构用法不一样
如果while和for循环省略{ };下面不能定义变量,因为作用域不明确.
#include<stdio.h>
int main(){
for (int i=0;i<3; i++,a++) { //错误,a的作用域不在{ }中
int a=2;
printf("内循环是第%d行helloword\n",i);
}
return 0;
}
练习:九九乘法表
#include<stdio.h>
int main(){
for (int i=1; i<=9; i++) {
for (int j=1; j<=i; j++) {
printf("%d*%d=%d\t",j,i,i*j);
}
printf("\n");
}
}
while 和for 什么时候用
1.看是否明确要执行多少次循环
如果循环明确,用for
如果循环不明确用while
- C语言的流程控制
- C语言的流程控制
- C语言流程控制
- C语言笔记流程控制
- C语言 流程控制语句
- 【C语言】09-流程控制
- C语言基本流程控制
- C语言学习-流程控制
- C语言流程控制续
- C语言基础----流程控制
- C语言之控制流程
- C语言流程控制总结
- C语言-2-流程控制
- C语言-流程控制语句
- C语言流程控制续
- C语言DAY04 - 流程控制
- C语言流程控制语句的反汇编分析
- 流程控制(学习C语言的转折点)
- css属性 知识总结
- 20160126.CCPP体系详解(0005天)
- 用c语言代码编写的游戏“简易五子棋”
- Java基础04 封装与接口
- 编程题#3:计算数列平方和(C++程序设计第10周)
- C语言的流程控制
- RXJava学习笔记(2)
- 20160127.CCPP体系详解(0006天)
- linux常用命令
- 华为机试题:字符转换Univesity
- Java基础05 实施接口
- 20160128.CCPP体系详解(0007天)
- 2 Types of Linux File Locking (Advisory, Mandatory Lock Examples)
- C++查找数组中的最大值和最小值