C语言提供了可以进行逻辑判断的语句,由这些选择语句可构成程序的选择结构,也称之为分支结构,他根据逻辑判断结果取决程序执行不同的分支。选择结构是结构化程序设计的三种基本结构之一。有简单if语句双支或多支if语句与switch语句。
简单if语句的一般形式为:
if(表达式)
{
语句组;
}
在这里,if是C语言的关键字。其执行过程:首先判断表达式得至,入过表达式的值位真,则执行语句组,否则执行语句组下面的其他语句。当语句组有多条时,该语句组必须加“{}”。
例如:输入两个数,输出最大值。
#include<stdio.h> main() { int x,y,max; scanf("%d,%d",&x,%y); max=x; if(max<y) max=y; printf("max=&d",max); }
表达式为真执行赋值语句,为假则直接输出max取值x;
双分支if语句为if...else形式,其一般形式为:
if(表达式)
{
语句组1;
}
else
{
语句组2;
}
在这里if与else都是C语言的关键字。其执行过程中:首次判断其 表达式的值,如果表达式为真,则执行语句组1;否则执行语句组2。当语句组1与语句组2由多条语句组成时要用“{}”括起来,形成复合语句。
例如:输入一个数,判断其是否能被3整除。若能被3整除,则输出“YES”,否则则输出“NO”。
#include<stdio.h> main() { int x; scanf("%d",&x); if(x%3) printf("NO\n"); else printf("YES\n"); }
x%如果为0则可以被整除所以输出“YES”否则输出“NO”;
C语言还提供了另一种用于多分支选择switch语句,其一般形式为:
switch(表达式)
{
case 常量表达式1: 语句1;break;
case 常量表达式2: 语句2;break;
...
case 常量表达式n: 语句n;break;
default : 语句n+1;
}
在这种选择结构中,switch,case,break,default是C语言系统的关键字,其执行过程是:先计算表达式的值,然后跳转到case后与其具有相同值的常量表达式处开始执行,直到break语句或语句结束处结束执行。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。语句中break可以省略,default部分也可以省略。
例如:输入一个日期,输出该日期是星期几。
#include<stdio.h> main() { int day; scanf("%d",&day); switch(day) { 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"); } }
用户可以根据需求选择语句的使用。