C语言学习2

C语言笔记2

第三课 class 3

if 语句

if(<表达式>) 语句1;

(语句只有一条)

if(<表达式>)

{

​ 语句块1;

}

if(<表达式>)

​ 语句1;

else

​ 语句2;

if(<表达式1>)

​ 语句1;

else if(<表达式2>)

​ 语句2;

else if(<表达式3>)

​ 语句3;

else

​ 语句4;

0表示假,非0为真:if(3) … =>为真

if的嵌套:else与最近的未配对的if配对,与缩进无关

if()

​ {if()语句1;}

else

​ 语句2

switch

switch(表达式) //表达式非表达真假,出现在常量表达式里,执行其后面的内容

{case 常量表达式1:语句组1;break; // 若没有break继续执行下面的情况不进行判断,有则跳出switch

case 常量表达式2:语句组2;break;

… …

case 常量表达式n:语句组n;break;

default: 语句n+1;

}

1
2
3
4
5
6
7
8
9
10
11
int main(int argc, char *argv[]) {
char grade=getchar();
switch(grade)
{case'A':printf("85~100\n");break;
case'B':printf("70~84\n");break;
case'C':printf("60~69\n");break;
case'D':printf("<60\n");break;
default:printf("error\n");
}
return 0;
}

e.g.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main(int argc, char *argv[]) {
int s1,s2;
char a;
scanf("%d%c%d",&s1,&a,&s2) ;
switch(a)
{
case '+':printf("%d %c %d = %d",s1,a,s2,s1+s2);break;
case '-':printf("%d %c %d = %d",s1,a,s2,s1-s2);break;
case '*':printf("%d %c %d = %d",s1,a,s2,s1*s2);break;
case '/':printf("%d %c %d = %d",s1,a,s2,s1/s2);break;
default: printf("error\n");
}
return 0;
}

循环结构

while语句;do—while语句;for语句(goto<标号>,不建议使用)

while:先判断再执行(修改循环变量)

while(<表达式>)

{

语句块;(循环体)

}

简化:while(x!=0) ==>while(x)

​ while(x==0)==>while(!x)

空语句:while(x++<10000); ==>结果:x=10000

单语句:

1
2
3
4
5
6
7
x=10;
while(x-->0) printf("%d",x);
//out:9876543210

x=10;
while(--x>0) printf("%d",x);
//out:987654321

do while:先循环再判断,至少循环一次

do

语句块;

while(<表达式>);

for

for(表达式1;表达式2;表达式3)

​ 循环语句

1.判断表达式1,2.判断表达式2(不成立出循环),3.执行循环语句,4.按表达式3修改循环变量,5.判断表达式2 … …

表达式可以没有,但;一定要有

1到100和:

1
2
for(i=1;1<=100;i++)
sum+=i

e.g.九九乘法表:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main(int argc, char *argv[]) {
int i,j;
for(i=1;i<=9;i++)
{for(j=1;j<=i;j++)
{printf("%d*%d=%2d ",j,i,i*j);
}
printf("\n");
}
return 0;
}
/*out:
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81*/

并列循环变量名可同名,嵌套循环变量名不可同名

break可跳出本级循环

continue回到循环开头进行下一次循环判断