C语言的选择结构程序设计可以分为两种
单分支的选择程序设计
单分支if语句格式
if(表达式)
语句1;
//例子:(判断输出值)
#include <stdio.h>
int main(){
int a;
int b;
printf("请输入a,b,\n");
scanf("%d,%d",&a,&b);
if(a==b){
printf("是的!a=b时正确的!\n");
return 0;
}
}
多分支的选择程序设计
多分支的选择结构有双分支结构
双分支if语句格式
if(表达式){
语句1;
else
语句2;
…
}
//例子:(判断两个数的最大值)
#include <stdio.h>
int main(){
int a;
int b;
printf("input a,b:" );
scanf("%d,%d",&a,&b);
if (a>b)
{
printf("max=%d\n",a );
}
else{
printf("max=%d\n",b );
}
return 0;
}
多分支结构
1.
if(表达式){
语句1;
else if(){
语句2;
}
}
2.
else if语句
if(表达式){
语句
else if (/* 表达式 /){/ 语句 /}
else if (/ 表达式 /){/ 语句 */}
}
else{语句}
//判断数字值代表的星期
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a;
printf("please input your number" );
scanf("%d",&a);
if (a==1)
{
printf("Today is monday!\n");
}
else if (a==2)
{
printf("Today is tuerday\n" );
}
else if (a==3)
{
printf("Today is wednesday\n" );
}
else if (a==4)
{
printf("Today is thursday\n" );
}
else if (a==5)
{
printf("Today is firday\n" );
}
else if (a==6)
{
printf("Today is saturday\n" );
}
else if (a==7)
{
printf("Today is sunday\n" );
}
else{
printf("sorry ! your enter number is false! please input again! thanks\n" );
}
printf("It is good week!\n" );
return 0;
}
例子(判断两个数值定义)
#include <stdio.h>
int main(){
char sex; /定义字符型数值sex/
int tall; /定义整型数值tall/
printf("请输入sex、tall数值");
scanf("%c%d",&sex,&tall); /输入sex tall的数值/
if(sex='F'){
/判断输入sex的值是否等于F/
if(tall>=150){
/判断tall是否大于等于150/
printf("A\n"); /当tall>=150时输出A/
}
else{
/当tall小于150时输出B/
printf("B\n");
}
}
else{
/判断sex不等于F执行/
if(tall>=170){
/判断tall值是否>=170/
printf("A\n"); /当tall>=170时输出A/
}
else{
printf("B\n"); /当tall小于170时输出B/
}
}
return 0;
}
if else配对原则
else与同一层最接近它,而又没有其他else语句与之相匹配的if语句配对
switch(开关分支语句)
switch(表达式){
case 1:
语句组;
break;
case 2:
语句组;
break;
case 3:
语句组;
break;
case n:
语句组;
break;
default;
语句组;
}
/*例子输入成绩查询等级*/
#include <stdio.h>
int main(){
int score;
int max;
printf("please input score");
scanf("%d",&score);
max = 0<score&&score<100 ? score/10:-1;
switch(max){
case 10:
printf("grade =A\n");
break;
case 9:
printf("grade =A\n");
break;
case 8:
printf("grade =B!\n");
break;
case 7:
printf("grade =C\n");
break;
case 6:
printf("grade =D/n");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
printf("sorry ! please study hard !/n");
break;
default:
printf("Input error again!/n" );
return 0;
}
}
条件运算符
例子
if(a>b){
max=a;
}
else{
max=b
}
我们看这个例子,当a,b的数值进行判断的时候,用分支语句是不是有点繁琐,而我们可以用条件运算符来简化这些东西
可以这样看成:a>b?a:b
这样的意思就是 当a>b的时候为真是,则a为a>b的值,若为假,则b为a>b的值