1.表达式、空语句、复合语句
1.1 表达式语句 a++; --a;a; a>5; a+5;… 1.2空语句 ; for(i=0;i<k;i++){;} 1.3复合语句 if(i<9){h;j;j;} //就是{}里面有多条语句。程序从第一条语句按顺序逐条往下执行。
2.选择结构语句
2.1if语句 if其语义:如果表达式的值为真,则执行其后的语句,否则不执行该语句。
(1)不含else的if语句 if(表达式) 语句;
if(表达式)
{
语句;
}
(2)完整的if语句 if(表达式) //如果 { 语句1; } else //否则 { 语句2;
}
(3)嵌套的if语句 其语义:依次判断表达式的值,当出现某个值为真时,则执行对应的语句,然后跳到整个if语句之外继续执行程序;如果所有的表达式均为假,则执行语句n,然后继续执行后续程序
if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; ....... else if(表达式m) 语句m; else 语句n;
2.2switch语句
switch(表达式) 1 { case 常量表达式1: 语句序列1; break; case 常量表达式2: 语句序列2; break; ....... case 常量表达式n: 语句序列n; break; default: 语句序列n+1; break; }
switch语句使用注意的几点:
- switch语句中的表达式可以使数值,也可以是字符。
- 在同一个switch语句中,表达式和各常量表达式的类型应一致,且任何两个case的常量表达式不能有相同的值,除非switch语句嵌套。
- 多个case可共用一组执行语句。
- 每个case或default后可以是多条语句,且可以不需要用{}括起来。
- break可用来中途退出switch语句,通常在一个case语句后面使用break退出switch语句。
- default可省略
- switch可以嵌套
3.1 for语句 for(表达式1;表达式2;表达式3) 循环体; 表达式1:变量赋初值 表达式2:循环继续条件 表达式3:循环变量增值 for循环的表达式是可以省略的 注意:for语句的表达式1,表达式2,表达式3都可省略,但分号不可以省略。
3.2 while语句
while(表达式) 循环体; while语句的语义:计算表达式的值,当值为真(非0)时, 执行循环体语句。
3.3 do-while语句
do { 循环体; } while(表达式);
do-while语句的语义:首先执行循环体语句一次,再判断表达式的值,若为真(非0)则继续循环,否则终止。
4.转移语句
转移语句:就是改变程序正常流向
4.1break语句:break语句用于强制中断循环或退出switch语句。 仅用在循环结构语句或switch语句中。其作用是跳出switch语句或跳出本层循环。
4.2 continue语句:
continue; 结束本次循环,即不再执行循环体中的continue语句之后的语句,转入下一次循环条件的判断与执行。 注意:continue语句只结束本层本次的循环,并不跳出循环。 注意:continue只能用于循环体中(有三种 ),该语句的执行会使执行流程转到循环体的末尾,也就是接着去执行下一次循环,而循环体中出现在continue语句后面的那部分语句将被该次循环跳过。
4.3return语句
return 表达式;
4.4 goto语句
goto 标号; //标识符: 我们变量名也是标识符;
标识符命名规则 :不能以特殊符号 数字开头 关键字除了下划线_与美元符号$
.......
标号:语句;
遇到goto 就会跳转回标号语句位置继续往下执行。
小练习
1.从键盘上输入一个整数,输出该数是奇数还是偶数。
int main()
{
int num;
while(1)
{
printf(“请输入一个数:”);
scanf(“%d”,&num);
if(num%2==0) //判断偶数条件
{
printf(“%d是偶数”,num);
}
else
{
printf(“%d是奇数”,num);
}
}
return 0;
}
2.输入3个整型变量x,y,z,按照从小到大的顺序排序。
int main()
{
int a,b,c,d;
printf("请输入3个整型变量:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
d=a;
a=b;
b=d;
}
if(a>c)
{
d=a;
a=c;
c=d;
}
if(b>c)
{
d=b;
b=c;
c=d;
}
printf("排序后的顺序是%d%d%d",a,b,c);
}
3.从键盘输入一个百分制成绩score,按下列原则输出其等级:score>=90,等级为A;80<=score<90,等级为B;70<=score<80,等级为C;60<=score<70,等级为D;score<60,等级为E。
int main()
{
int score;
printf("请输入成绩:\n");
scanf("%d",&score);
if(score>=90) printf("等级为A");
else if(80<=score<90) printf("等级为B");
else if(70<=score<80) printf("等级为C");
else if(60<=score<70) printf("等级为D");
else if(score<60) printf("等级为E");
}