第四章语句
1.表达式语句和空语句
1)表达式语句:任何一种表达式末尾加上分号组成的语句
(有时单独存在的表达式语句是没有实际意义的,需要将其表达式的值赋给某个变量才有意义。)
2)空语句:空语句是一种只有分号,没有表达式的特殊语句。(它是“不做事情”的语句,用其来延迟一段时间。)
2.复合语句和分程序
1)复合语句:由两条或两条以上语句用花括号{}括起来的语句序列。
(语句可以简单的划分为:单语句,复合语句,单语句是指只有一条语句,复合语句是多条语句的总称,多条语句用花括号括起来才称为复合语句。没有花括号括起来的若干条单语句只能称为语句序列。复合语句在程序中没看作是一条语句。复合语句可以嵌套。)
复合语句和函数体虽然都由花括号括起来但:复合语句是由两条或两条以上语句序列组成的,而函数体内可以包含若干个复合语句,也可以只有一条语句,也可没有语句。
2)分程序:花括号内含有说明语句的复合语句
{说明语句}
{执行语句}
说明语句一低昂要放在执行语句前。
3.分支语句
1)条件语句:根据指定的条件安决定执行不同程序段的语句。
格式如下:
If(条件1)
(语句1)
Else if(条件语句2)
(语句2)
Else(条件语句3)
(语句3) (if和if下最近的else匹配)
举个例子:
要求输入两个数,案由大到小的顺寻输出,程序如下:
#include <stdio.h>
int main()
{
int a,b,c=0;
printf("请输入a,b:");
scanf("%d%d",&a,&b);
if(a<b)
{
c=a;
a=b;
b=c;
}
printf("%d,%d\n",a,b);
getchar();
getchar();
}
结果为:
2)开关语句:(又称switch语句)
格式如下:
Switch(×××表达式)
{
Case(×××表达式1):{程序段1}
Case(×××表达式2):{程序段2}
Case(×××表达式3):{程序段3}
Case(×××表达式4):{程序段4}
。
。
。
。
Case(×××表达式N):{程序段N}
Default:(程序段N+1)
}
解释一下:
其中,switch,case,default是关键字。{×××表达式}要求其表达式的值为int型数,否则转换为int型,程序段是由0条刀多条语句组成的语句序列,一般情况下在末尾加上break跳出开关语句。
其大体执行过程为:计算switch关键字后面的{×××表达式的值},并转换成int型数,然后用该值按顺序的与case关键字后的{×××表达式的值}进行比较,如果相等则执行case后的执行语句,遇到berak跳出开关语句,否则继续执行下面的case语句直到执行完最后一个程序段,遇到右花括号为止。
举个例子:
要求可以对两个浮点型数分别进行,加,减,乘,除运算。
程序如下:
#include <stdio.h>
int main()
{
float a,b;
char op;
printf("请输入a,op,b:");
scanf("%f,%c,%f",&a,&op,&b);
switch(op)
{
case'+':printf("%.2f%c%.2f=%.2f\n",a,op,b,a+b);
case'-':printf("%.2f%c%.2f=%.2f\n",a,op,b,a-b);
case'*':printf("%.2f%c%.2f=%.2f\n",a,op,b,a*b);
case'/':printf("%.2f%c%.2f=%.2f\n",a,op,b,a/b);
default:printf("op is error!\n");
}
getchar(); getchar(); getchar();
}
结果为:
咦不对吧?写的减,怎么除了减法运算外还运行了乘除运算?(因为没有遇见break,匹配上了减法运算后,不再进行匹配,继续执行后面的case运算。)
我们来调一下:
#include <stdio.h>
int main()
{
float a,b;
char op;
printf("请输入a,op,b:");
scanf("%f,%c,%f",&a,&op,&b);
switch(op)
{
case'+':printf("%.2f%c%.2f=%.2f\n",a,op,b,a+b);
break;
case'-':printf("%.2f%c%.2f=%.2f\n",a,op,b,a-b);
break;
case'*':printf("%.2f%c%.2f=%.2f\n",a,op,b,a*b);
break;
case'/':printf("%.2f%c%.2f=%.2f\n",a,op,b,a/b);
break;
default:printf("op is error!\n");
}
getchar(); getchar(); getchar();
}
结果是不是就正常了哈!
转载于:https://blog.51cto.com/2948229/1159480