c语言之选择语句
c中的真值和假值。
真值:任何非零值
假值:零
c中的选择语句:if和switch两种类型的语句。
1、if语句
一般形式:
if(条件表达式) 语句或语句块;
else 语句或语句块
如果条件表达式是真值,则执行if的语句或语句块
如果条件表达式是假值,则执行else语句或语句块
例如:
int main(void)
{
int num1=10;
int num2;
printf("input a int \n");
scanf("%d",&num2);
if(num2>num1)
printf("%d > %d\n",num2,num1);
else printf("%d < %d\n",num2,num1);
getch();
return 0;
}
当输入6的时候程序结果为:
6<10
当输入20的时候程序结果为:
20>10
如果两个值相等呢??
看一下if的另一种形式:
if(条件表达式) 语句或语句块;
else if(条件表达式) 语句或语句块;
................
else 语句或语句块
例如:
int main(void)
{
int num1=10;
int num2;
printf("input a int \n");
scanf("%d",&num2);
if(num2>num1)
printf("%d > %d\n",num2,num1);
else if(num2==num1)
printf("%d == %d\n",num2,num1);
else printf("%d < %d\n",num2,num1);
getch();
return 0;
}
当输入10的时候程序结果为:
10==10。
嵌套的if形式:
if(条件表达式)
{
if(条件表达式) 语句或语句块;
else 语句或语句块
}
else 语句或语句块
例如:
int main(void)
{
int num1=10;
int num2;
printf("input a int \n");
scanf("%d",&num2);
if(num2>=num1)
{
if(num2==num1) printf("%d == %d\n",num2,num1);
else printf("%d > %d\n",num2,num1);
}
else printf("%d < %d\n",num2,num1);
getch();
return 0;
}
2、switch语句
一般形式:
switch(表达式)
{
case 常量: 语句 break;
case 常量:语句 break;
default : 语句;
}
表达式必须是整数可以使用字符或者整数,表达式的值和case中的常量作比较,发现匹配
则执行后边的语句。直到break语句或者switch语句结尾,没有匹配则执行default。
例如:
void fun(int num1,int num2);
int main(void)
{
int i,num1=0,num2=0;
for(;;)
{
printf("1. input int num1 and num2 \n");
printf("2. bi jao da xiao \n");
printf("3. qing kong num1 and num2 \n");
printf("4. exit\n");
scanf("%d",&i);
switch(i)
{
case 1:
printf("input num1 and num2\n");
scanf("%d%d",&num1,&num2);
break;
case 2:
fun(num1,num2);
break;
case 3:
num1=0;num2=0;
printf("num1==num2==0\n");
break;
case 4:
return 0;
default:
return 0;
}
}
return 0;
}
void fun( int num1, int num2)
{
if(num2>=num1)
{
if(num2==num1) printf("%d == %d\n",num2,num1);
else printf("%d > %d\n",num2,num1);
}
else printf("%d < %d\n",num2,num1);
}
程序以菜单形式提现了2个整数比较大小。
我们首先选择1,输入10和20。
然后在选择2,程序输出20>10
输入3,程序结束。
如果直接选择2,程序输出0==0。
switch的几个注意地方
switch只能测试表达式和常量是否相同,if测试的是逻辑关系。
各个case常数必须各异。