目录
一,控制结构
1.顺序交换
引入中间变量T
使
t=x;
x=y;
y=t;
意义为x,y位置交换
2.if的使用
三种形式(1):简单if 语句
eg:
if(x>y) //判断表达式,为真则执行下面语句
{t=a;a=b;b=t;} //实现a和b的互换 //否则不执行
(2):if else语句
eg:
if(x+y>z&&x+z>y&&y+z>x) //判断表达式的值,为真则执行A
{
c=(x+y+z)/2.0;
s=sqrt(c*(c-x)(c-y)(c-z));
printf("面积:%.2lf\n",s);
}
else //值为假,或者说不满足表达式,则执行语句B
printf("三边无法构成三角形\n");
(3):If语句嵌套,实现多分支
eg:
if(x>=0)
if(x==0)
y=0;
else y=1;
else
y=-1;
为使if嵌套结构更具可读性,通常使用以下结构
eg:
if(c<31)
printf("c是控制字符\n");
else if(c>='0'&&c<='9')
printf("c是数字\n");
else if(c>='A'&&c<='Z')
printf("c是大写字母\n");
else if(c>='a'&&c<='z')
printf("c是小写字母\n");
else
printf("c是其他字符\n");
补充说明:
1.表达式值为0按假处理
2.每语句分号不可省略
3.if和else后的语句只能是一条语句。若有多条操作语句则必须用“{ }”括起来如:
if(x>y)
{t=x;
x=y;
y=t;}
else
x=y;
3.条件运算符替代简单if 语句
主要形式:三目运算符
表达式1?表达式2:表达式3
eg: 下两式等价
if(a>b)
max=a;
else
max=b;
max=a>b?a:b;
4.switch的使用
主要形式:
switch(表达式) //只能是整型或者字符型
{ case 常量表达式1:语句组1;break; //表达式的值与case后值相等则执行该式后的语句组
case 常量表达式2:语句组2;break;
...
case 常量表达式n:语句组n;break;
default:语句组 n+1; } //所有case都没有匹配的执行default后面的
补充说明:
1.case 后不需使用花括号也可以
2.多个case可以执行同一个语句eg:
switch(s)
{ case 5: //这里用冒号
case 4:
case 3: printf("Pass\n");break; }
3.default语句可以省略
4.switch语句也可以嵌套
eg:
switch(x)
{
case 1:switch(y)
{ case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++; break;
case 3:a++;b++;
}
5.while的使用
主要形式:(特点:先判断表达式,后执行循环体)
while(表达式) //判断表达式的真假,为真(非零)时执行循环体结构。
循环体语句; //否则退出循环
eg :
while((c=getchar())!='\n') //直到回车结束
putchar(c); //接收字符
补充说明:
1.循环体有多条语句要用花括号构成一条复合语句
2.条件表达式不成立(为0),或循环体内遇到break,return,goto等语句,将退出while循环
3.循环体需要无休止进行时可采用以下形式
while(1)
循环体;
6.do while的使用
主要形式:(特点:先执行循环体后判断表达式。循环至少循环一次)
do //先执行一次循环体
循环体语句
while(表达式) //再判断表达式,如果结果为真,重复循环。为假则停止执行
eg:
do
{
sum+=i;
i++;
}while(i<=100);
补充说明:
1.while语句后的分号勿漏
2.循环体有多条语句记得用花括号括起来
7.for的使用
主要形式:
for ([表达式1];[表达式2];[表达式3])
//表达式1赋初值,表达式2循环条件,表达式3使循环趋向终止 的条件
循环体语句;
eg:
for(i=1;i<=100;i++)
sum+=i;
补充说明:
1.循环体有多条语句要用花括号括起来
2.while,do while,for 之间可以互相嵌套
eg:
for(i=1;i<=9;i++) //外层循环:行循环
{
for(j=1;j<=i;j++) //内层循环:列循环打印
printf("%d*%d=%2d ",j,i,i*j);
printf("\n");
}
3.外层循环一次内层循环多次(1到i)
8.break的使用
break语句:作用:跳出循环体,执行循环语句后面的语句
补充说明:1.不能单独使用,只能用于循环语句和switch语句中
2.break在内层循环体中只终结内层循环
9.continue的使用
continue语句:
作用:满足条件,终止本次循环的执行,跳过循环体中剩余语句,继续进行下一次循环
eg:
for(i=1;i<=10;i++)
{ scanf("%d",&a);
if(a%2==0)
continue;
num++; }