目录
一、if语句
if语句是指编程语言(包括c语言、C#、VB、java、汇编语言等)中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。
if语句的三种形式
-if语句 单分支结构
-if…else 双分支结构
-if…else if…else 多分支结构
1.if语句-单分支结构
语法格式:
if(表达式)
{
语句块
}
例如:判断一个数为正数
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
if(a>0)
{
printf("%d是正数.\n",a);
}
return 0;
}
2.if…else语句-双分支结构
语法格式:
if(表达式)
{
语句块1
}
else
{
语句块2
}
例如:判断一个数是奇数还是偶数
#include<stdio.h>
int main()
{
int a;
pfintf(“请输入一个整数:”);
scanf("%d",&a);
if(a%2==0)
printf(“%d为偶数!”,a);
else
printf(“%d为奇数!”)
return 0;
}
3.if…else if…else语句-多分支结构
语法格式:
if(表达式1) {语句块1}
else if(表达式2){语句块2}
else if(表达式3){语句块3}
……
else if(表达式n){语句块n}
else{语句块m}
#include<stdio.h>
int main()
{
char c;
printf("Input a character:");
scanf("%c",&c);
if(c>=‘a’ && c<='z'|| c>='A' && c<='Z')
printf("It is an English character.\n");
else if(c>='0' && c<='9')
printf("It is a digital character.\n");
else
printf("It is other character.\n");
return 0
}
多分支语句中的else if中间是有空格的。
单双分支语句的集中书写格式同样适用于多分支语句。
多分支语句中的判断条件一旦被满足,便终止往下判断。
4、if语句的嵌套
if(表达式1)
{
if(表达式2)语句1
[eise 语句2
}
if(表达式1)
{
if(表达式2)语句1
[else 语句2]
}
else 语句3
if(表达式1){语句1}
else
{
if(表达式2)语句2
[else 语句3】
}
if(表达式1)
{
if(表达式2)语句1
[else 语句2]
}
else
{ if(表达式3)语句3
[else 语句4]
}
- if语句的每个分支,又可以看做一个顺序执行程序,其中可以在添加分支。
- else语句会与距离它最近的if语句配对,除非有{}。
- 在没有熟悉掌握嵌套语句使用前,建议都添加{}。
二、switch语句
switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择。以C语言来说,switch(开关语句)常和case break default一起使用。
switch语句,即“切换”语句;case即“情况”。
switch语句的语法如下(switch,case,break和default是关键字):
switch ( 变量表达式 )
{
case 常量1 :语句;break;
case 常量2 :语句;break;
case 常量3 :语句;break;
...
case 常量n:语句;break;
default :语句;break;
}
当变量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面所有case语句中的语句,除非遇到break;语句跳出switch语句为止。如果变量表达式的量与所有case语句的常量都不相符,就执行default语句中的语句
#include<stdio.h>
int main()
{
int a;
printf("Input integer number:");
scanf("%d",&a);
switch(a)
{
case 1: printf("Monday\n");break;
case 2: printf("Tuesday\n");break;
case 3: printf("Wednesday\n");break;
case 4: printf("Thursday\n");break;
case 5: printf("Friday\n");break;
case 6: printf("Saturday\n");break;
case 7: printf("Sunday\n");break;
default: printf("error\n");
}
return 0
}
注意:
- 表达式的值为整数、字符、枚举类型。
- 常量表达式的值必须互不相同,否则会出现分支矛盾。
- case后面的常量表达式只起标号作用。一般情况下需用break语句跳出switch语句。
- 语句块可以是一条语句,或复合语句,可以不用{}。
- case和default出现的先后次序并不影响执行结果。
- 多个case标号可共用一组执行语句。
三、if语句与switch语句的区别
1、if语句应用广泛并且实用。
2、switch语句效率更高,更精简。
3、用switch语句能做到的,用if语句都能做,反过来则不可以。