笔记整理4: C语言中各语句及其程序设计
常用的控制语句:
控制语句 | 说明 |
---|---|
if()…else… | 选择语句 |
switch() | 多分支选择语句 |
for()… | 循环语句 |
while()… | 循环语句 |
do…while() | 循环语句 |
break | 退出switch或循环 |
continue | 退出本次循环 |
return | 从函数返回 |
选择结构程序设计
(1),if语句及程序设计
形式:
1,if(表达式)语句
2,if(表达式1)语句 else 语句
3,if(表达式1)语句『else if (表达式n)语句』 else 语句
4,if 循环语句的嵌套。
含义:
1,若表达式为真,则执行其后语句,否则不执行。
2,若表达式1为真,则执行其后语句,否则执行else后的语句
3,若表达式1为真,则执行其后语句,否则判断语句n,哪条表达式为真,则执行其后语句,然后结束本循环,若都不为真,则执行else后的语句。
4,循环语句的嵌套,即一个IF语句包含另一个IF语句,另一个呢也可能会再包含一个,但一般不会超过3个。
注意:
1,可见如果IF循环语句中有else,则必定会执行一条语句,如果没有,则可能一条语句也不执行。
2,在做IF语句的题时,我们要注意if,else if,else 的搭配问题 ,一般我们从下往上看,就近原则喔。
例(程序设计):
int a = 1,b = 2,c = 3,d = 0;
if(a == 1)
if(b != 2)
if(c == 3) d=1;
else d = 2;
else if(c != 3) d = 3;
else d = 4;
else d = 5;
printf("%d\n",d); //一般会直接给你一堆数字,让你摸不清头脑
整理后:
#include<stdio.h>
main()
{
int a = 1,b = 2,c = 3,d = 0;
if(a == 1)
if(b != 2)
if(c == 3) d=1;
else d = 2;
else if(c != 3) d = 3;
else d = 4;
else d = 5;
printf("%d\n",d);
} //从下往上看,每个else或else if对应最前面的一个if
输出结果:
4
if语句的嵌套可看我之前发过的习题,这里就不举例了。
(2),switch语句及程序设计
形式:
switch(总表达式)
{
case 常量表达式1:语句1
case 常量表达式2:语句2
......
case 常量表达式n:语句n
default:语句 n+1 //default可放在复合语句的最前面
}
注意:
1,执行总表达式所算出的常量所对应的语句及其后面的所有语句。
2,若无对应的常量,则执行default后的所有语句。此时default的位置及其重要。
3,若不想执行所有语句,可用break退出switch。不能用continue,应其只用于循环。
例(程序设计):
#include<stdio.h>
main ( )
{
int i=5 ;
do
{
switch (i%2)
{
case 0 :
i-- ;
break ; //break跳出switch循环
case 1 :
i-- ;
continue ; //continue继续执行while循环
}
i-- ;
i-- ;
printf("%3d",i);
}
while (i>0) ;
}
输出结果:
1
顺序结构程序设计
(1),while语句与do…while语句
形式:
1,while(表达式)循环体语句
2,do 循环体语句 while(表达式);
含义:
1,判断表达式是否为真,为真执行循环体语句,并再次判断表达式…直到表达式为假,方可跳出循环。
2,这类和第一类的区别就是它先执行一遍循环体语句,再判断表达式。注意这里不能少分号!!!
例(程序设计):
#include<stdio.h>
main( )
{
int a[4][4]= { {1, 2, 3, 4}, {5, 6, 7, 8}, {11,12,13,14}, {15,16,17,18}};
int i,j,s;
i=j=s=0;
while(i++<4)
{
if( i==2||i==4 )
continue;
j=0;
do
{
s+=a[i][j];
j++;
}
while( j<4 );
}
printf("%d\n", s);
} //这里其实只是将a[1]和a[3]内的全部整数加在了一起
输出结果:
92
(2),for语句及程序设计
形式:
for(初值;条件;增量)
注意:
1,初值内可存放逗号语句。
2,条件若不写,则指定为1,即一直为真。
例(程序设计):
#include<stdio.h>
main()
{
int a[3][3]= {{50,60,70},{60,70,80},{70,80,90}},i,j;
float s;
for(i=0; i<3; i++)
{
s=0;
for(j=0; j<3; j++)
s+=a[i][j];
printf("%d:%.2f\n",i+1,s/3);
}
}
输出结果:
1:60.00
2:70.00
3:80.00
(3),break,continue,return语句
1,break,continue语句已在上面的例题中出现过,这里就不做过多阐述了。
2,需要注意的是continue语句在for语句中退出本次循环时,需进行完增量再走。
3,return语句经常在子函数中出现,后面再进行解释啦。