C语言选择控制结构
用于单分支控制的条件语句
if(表达式P) 语句A
#include<stdio.h>
main()
{
int a,b,max;
printf("Input a,b:");
if(a>b) max = a;
if(a<=b) max = b;
printf("max = %d\n",max);
}
可以只有if,但是不能只有else
用于双分支控制的条件语句
if(表达式P) 语句1
else 语句2
#include <stdio.h>
main ()
{
int a,b,max;
printf("Input a,b:");
scanf("%d,%d",&a,&b);
if(a.b) max = a;
else max = b;
printf("max = %d\n",max);
}
用于多分支控制的条件语句
if (表达式) 语句1
else if(表达式2) 语句2
.
.
.
else if (表达式m) 语句m
else 语句+1
所有的else if语句同时判断,如果某一个else if 语句达到要求就不会运行其他的判断语句
调用函数exit()需要在程序开头包含头文件stdlib.h
函数exit()的作用是终止整个程序的执行,强制返回操作系统
用于多路选择的switch语句
switch (表达式)
{
case 常量1:
可执行语句序列1
case 常量2:
可执行语句序列2
.
.
.
case 常量2:
可执行语句序列n
default:
可执行语句序列n+1
}
switch 语句相当于一系列的if-else语句,被测试的表达式写在关键字switch后面的圆括号中,表达式只能是char型或int型,这在一定程度上限制了switch语句的应用
注意,常量与case中间至少有一个空格,常量后面是冒号,常量的类型与switch后括号内表达式的类型一致
#include <stdio.h>
main ()
{
int data1,data2;
char op;
printf("Please enter an expression:");
scanf("&d&c&d",&datal1,&op,&datal2);
switch(op)
{
case'+':
printf("%d+%d =%d\n",datail1,datal2,datal1+datal2);
break;
case'-':
printf("%d-%d =%d\n",datail1,datal2,datal1-datal2);
break;
case'*':
printf("%d*%d =%d\n",datail1,datal2,datal1*datal2);
break;
case'/':
if(0==datal2)
printf("Division by zero!\n");
else
printf("%d/%d =%d\n",datail1,datal2,datal1/datal2);
break;
default:
printf("Invalid operator!\n");
}
}
逻辑运算符和逻辑表达式
“|” (按位或)(1)
“&” (按位与)(0)
“||” (或)
“&&” (且)
“!” (非)
if(!n)等价于if(n!=0)