【llpo67】C语言笔记(一)—— 控制结构 -------------------------------------------------期末\总结\速成\备考\考研\大一\专升本\自考\自学

发布时间:2023年12月28日

一,控制结构

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语句也可以嵌套

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++;? ? ?}

文章来源:https://blog.csdn.net/jm624/article/details/135254163
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。