C语言基础自学总结之二流程控制语句.docx
《C语言基础自学总结之二流程控制语句.docx》由会员分享,可在线阅读,更多相关《C语言基础自学总结之二流程控制语句.docx(9页珍藏版)》请在冰点文库上搜索。
C语言基础自学总结之二流程控制语句
C语言基础自学总结之二:
流程控制语句
流程控制语句就是改变程序的执行顺序,或者选择程序的执行顺序。
例子1:
#include
intmain(void)
{
printf("1\n");
printf("2\n");
printf("3\n");
return0;
}
一、if语句
重点:
1、表示逻辑假设,结构:
if(表达式){若干语句;},
意思是:
如果“表达式”成立,“{}”里的语句执行,如果“表达式”为假,就跳过“{}”不执行。
2、扩展:
ifelse语句,表示逻辑选择;
结构是:
if(表达式){若干语句1;}else{若干语句2;};
意思是:
如果“表达式”为真,就执行if和else之间“{}“中的语句,否则就执行else后”{}“中的语句。
3、扩展2:
if……elseif……else语句,表示逻辑选择
结构是:
if(表达式1){语句1}elseif(表达式2){语句2}elseif(表达式3){语句3}else{语句4},后面可无限。
意思是:
如果“表达式1”成立,执行“语句1”,然后跳过整个结构,运行结构以后的程序,如果“表达式1”不成立,就计算“表达式2”如果成立,执行“语句2”,然后跳过整个结构,以此类推,只要上一个“表达式”不成立,就计算下一个“表达式”,直到成立,然后执行,最后跳出机构。
例子1:
if语句
#include
intmain(void)
{
printf("1\n");
if
(1){
printf("2\n");
}//表达式为“1”,所以是真,执行“{}”里的语句,打印“2”,
printf("3\n");
if(2>3){//可以是任何“表达式”
printf("4\n");
}//表达式为“0”,假,不执行“{}”里的语句,不打印“4”,
//return0;
//}
例子2:
ifelse语句
#include
intmain(void)
{
printf("1\n");
if(3>2){
printf("2\n");
printf("3\n");//可以是多个语句
}else{
printf("xxx\n");
}//表达式‘3>2’为真,执行if与else之间“{}”中的语句,打印2和3。
就是如果“3>2”那么就打印“2”,打印“3”。
printf("4\n");
if(3<2){
printf("5\n");
}else{
printf("表达式为假\n");
}//表达式‘3<2’为假,不执行if与else之间“{}”中的语句,执行else之后“{}”中的语句,打印“表达式为假”,如果“3<2”,就打印“5”,否则打印“表达式为假”。
return0;
}
例子3:
if……elseif……else语句
#include
intmain(void)
{
intx,y;//相同形式,可以一起声明。
scanf("%d",&x);
if(x<0){
y=x*x;
}elseif(x>=0&&x<5){
y=2*x+1;
}else{
y=3*x-2;
}//可运行下,如果“x<0”,就是执行“y=x*x”,如果“0<=x<5”,就执行“y=2*x+1”否则就执行“y=3*x-2”.
printf("%d\n",y);
return0;
}
二跳转语句
2.1goto跳转语句,无条件跳转语句
goto跳转语句,改变程序的运行顺序。
转到标号的位置继续执行
例子1:
goto跳转语句(goto在前,标号在后)
#include
intmain(void)
{
printf("1\n");
gotoABC;//改变程序的运行顺序。
转到标号的位置继续执行
printf("2\n");
printf("3\n");
ABC:
//标号,goto跳转到标号处开始执行。
printf("4\n");
printf("5\n");
return0;
}
例子2:
goto跳转语句(goto在后,标号在前),
#include
intmain(void)
{
printf("1\n");
ABC:
//标号,goto跳转到标号处开始执行。
printf("2\n");
printf("3\n");
printf("4\n");
gotoABC;//改变程序的运行顺序。
转到标号的位置继续执行
printf("5\n");
return0;
}
2.2switch作用是逻辑选择语句,用于开关语句
结构:
switch(表达式){case1:
语句1;case2:
语句2;case3:
语句3;……可无限}
意思是:
首先计算表达式,结果如果是“1”就执行“语句1”并向下执行,如果是“2”就跳到执行“语句2”并向下执行,如果是“3”,就跳到执行“语句3”并向下执行,依次下去。
例子1:
#include
intmain(void)
{
inta;
scanf("%d",&a);//输入一个数值,赋值给a
switch(a){
case1:
//case是标号
printf("1\n");
break;//break:
跳出循环,跳出整个switch语句。
不是跳出所有的语句,只是跳出循环语句和switch。
case2:
printf("2\n");
break;
case3+2:
//也可以是个表达式
printf("3\n");
break;
default:
//如果a的值不等于所有的标号,就执行default
printf("输入的数值无效!
\n");
//判断表达式的值,是“几”就从标号“几”开始执行
}
printf("4\n");
return0;
}
三循环语句
3.1while语句循环语句的循环条件
结构:
while(表达式){语句};
意思是:
首先计算表达式的值,如果为值就执行“{}”中的语句,然后在计算表达式如果为真执行语句,一直反复下去,直到表达式为假;如果为假就不执行跳过整个语句。
例子1:
#include
intmain(void)
{
inta=6;
intb=2;
while(a>b){
printf("helloworld!
\n");
}
//计算“a>b”本身6就大于2,所以执行语句打印“helloworld”,然后再计算,再执行,始终6都大于2所以就会无限的执行下去,永不停止,可以试试,这就与if语句不同处。
return0;
}
例子2:
#include
intmain(void)
{
inta=6;
intb=2;
while(a>b){
printf("helloworld\n");
a--;//让“a”自减,就会计算到4此的时候,a>b就不成立了。
}
return0;
}
例子3:
从1打印到100.
#include
intmain(void)
{
inti=0;
while(++i<=100){
printf("%d\n",i);//++i,i加后取值,
}//从1打印到100,
}
例子4:
continue
#include
intmain(void)
{
inti=0;
while(i++<10){
if(i==5){
continue;
//continue:
结束当前循环,开始下一轮循环。
跳回到表达式计算继续计算,并不是跳过这一次;break是跳出循环。
}
printf("%d\n",i);
}
}
3.2dowhile
结构是:
do{语句}while(表达式);
意思是:
先打后商量,先执行“语句”,然后再计算“表达式”,如果表达式成立再执行“语句”,再计算“表达式”直到“表达式”不成立。
例子1:
#include
intmain(void)
{
do{
printf("helloworld!
\n");
}while(1>2);
//先执行打印“helloworld!
”再计算表达式“1>2”,不成立,终止语句,成立继续打印语句直到不成立。
inti=0;
do{
printf("%d\n",i);
}while(++i<=5);//直到++i<=5不成立停止。
return0;
}