1.if(表达式)语句 1;
else 语句2;
if(1<4>3)不成立 因为: 1<4的值为1,1>3不成立
类似1<4>3这种表达式,会先计算1<4的结果(0或1),然后用该结果(0或1)跟3比较;
注意:不要把==写成=;
当if语句没有大括号时,会默认执行if之后的第一个语句,(找第一个分号)第一句之后的所有语句均不属于分支结构。
例1:
#include <stdio.h>
int main(int argc, const char * argv[])
{
char sex;
printf("请输入一个字符:");
scanf("%c",&sex);
if ('F'==sex)
printf("女");
if('M'==sex)
printf("男");
else
printf ("输入的字符有误");
return 0;
int main(int argc, const char * argv[])
{
char sex;
printf("请输入一个字符:");
scanf("%c",&sex);
if ('F'==sex)
printf("女");
if('M'==sex)
printf("男");
else
printf ("输入的字符有误");
return 0;
}
(01)
if(条件表达式1)
语句1;
else 语句2;
当条件成立执行语句1,否则执行语句2
例2:输入两个数,输入运算符号(+/-),计算结果。
#include <stdio.h>
void s(int a,char c,int b){
switch (c) {
case '+':
printf("%d+%d=%d",a,b,a+b);
break;
case '-':
printf("%d-%d=%d",a,b,a-b);
break;
case '*':
printf("%d*%d=%d",a,b,a*b);
break;
case '/':
printf("%d/%d=%d",a,b,a/b);
break;
default:
break;
}
}
int main(int argc, const char * argv[]) {
int d,e;
char f;
printf("请输入要计算的表达式:");
scanf("%d%c%d",&d,&f,&e);
s(d,f,e);
return 0;
}
void s(int a,char c,int b){
switch (c) {
case '+':
printf("%d+%d=%d",a,b,a+b);
break;
case '-':
printf("%d-%d=%d",a,b,a-b);
break;
case '*':
printf("%d*%d=%d",a,b,a*b);
break;
case '/':
printf("%d/%d=%d",a,b,a/b);
break;
default:
break;
}
}
int main(int argc, const char * argv[]) {
int d,e;
char f;
printf("请输入要计算的表达式:");
scanf("%d%c%d",&d,&f,&e);
s(d,f,e);
return 0;
}
(02)当条件满足时,会执行对应的分支语句,且不会再执行后面的条件,只有条件不成立时,才会继续判断后面的条件,最后可以不用else结尾。
int a = 30;
if (a > 40) {
//语句1
printf("语句1 ");
}else if (a > 20){
//语句2
printf("语句2 ");
}else if (a > 10){
//语句3
printf("语句3");
}
if (a > 40) {
//语句1
printf("语句1 ");
}else if (a > 20){
//语句2
printf("语句2 ");
}else if (a > 10){
//语句3
printf("语句3");
}
当if的条件是逻辑表达式,||,只要第一个条件成立,就不会再判断第二个条件,&&只要第一个为假,就不会再判断第二个。
if(条件表达式1){
语句1;
} else if(条件表达式2){
语句2;
} else if(条件表达式3){
语句3;
} else {
语句4;
}
例3:从键盘输入一个字符,如果是数字打印数字,如果是小写字母则打印小写字母,如果是大写字母则打印大写字母,如果是其他字符则打印other。
#include <stdio.h>
int main()
{
char c;
printf("请输入一个字符:");
scanf("%c",&c);
if (c>='0'&&c<='9'){
printf("This is digital:%d",c);
}else if (c>='a'&&c<='z'){
printf("This is letter:%c",c);
}else if (c>='A'&&c<='Z'){
{
char c;
printf("请输入一个字符:");
scanf("%c",&c);
if (c>='0'&&c<='9'){
printf("This is digital:%d",c);
}else if (c>='a'&&c<='z'){
printf("This is letter:%c",c);
}else if (c>='A'&&c<='Z'){
printf("This is capital letter:%c",c);
}else printf (“Other");
return 0;
}
//输入一个分数,判断其等级(90分以上优,80~90良 60~80及格,60分以下不及格)
#include <stdio.h>
int main(int argc, const char * argv[])
{ float score;
scanf("%f",&score);
if (score >= 90) {
printf("优");
}else if (score >= 80){
printf("良好");
}else if (score >= 60){
printf("及格");
}else{
printf("不及格,重修");
}
return 0;
}