分支构造程序之if语句
家喻户晓,C语言是一种结构化程序设计语言。程序并不会总是执行同样的解决,例如程序会通过条件判断的后果选择性执行某种解决。接下来咱们一起学习依据条件扭转程序运行流程。
if 语句1
#include<stdio.h>int main(){ int n; //输入一个整数 scanf("%d",&n); //条件判断 0为假 非0为真 if(n%5) printf("输出的数字不能被5整除\n"); return 0;}
if(表达式)语句会判断表达式的值,如果表达式的值非0,则会执行相应的语句;()中的表达式称为管制表达式,满足此表达式,后续语句则会则行,否则不执行。
if 语句2
#include<stdio.h>int main(){ int n; //输出一个整数 scanf("%d",&n); //判断奇偶 if(n%2==0) printf("这个数是偶数\n"); else printf("这个数是奇数\n"); return 0;}
if(表达式) 语句1,else(表达式)语句2
else是否则的意思,当表达式1的值不为0的时候执行语句1,否则执行语句2;
'==' 为相等运算符,属于双目运算符,对左右两侧的操作数进行比拟;与之对应的运算符是不等运算符 ‘!=’
if 语句3
#include<stdio.h>int main(){ int m,n; //输出两个整数 scanf("%d %d",&m,&n); //判断大小 if(a>b) printf("a>b\n"); else if(a<b) printf("a<b\n"); else printf("a=b\n"); return 0;}
if(表达式1)语句1,else if(表达式2)语句2,else(表达式3) 语句3;
表达式1的值不为0时,执行语句1,否则判断表达式2的值,若不为0则执行语句2,若为0则执行语句3;
‘>、<’ 为关系运算符,为双目运算符,对两侧操作数进行比拟。其余的关系运算符还有 ‘<=、>=’
条件运算符语句
#include<stdio.h>int main(){ int m,n,max; //输出两个整数 scanf("%d %d",&m,&n); //判断大小 max = m>n?m:n; printf("%d",max); return 0;}
条件运算符属于三目运算符,须要三个操作数;a?b:c 若表达式a的值不为0,则后果为b,否则后果为c
复合语句
#include<stdio.h>int main(){ int m,n,max,min; printf("%d %d",m,n); if(m>n) { max = m; min = n; } else { max = n; min = m; } printf("最大值是%d,最小值是%d",max,min); return 0;}
下面程序中的if语句在大括号内的语句称为复合语句或程序块;用{}括起来的复合语句也会被看做繁多的语句。
逻辑运算符语句
#include<stdio.h>int main(){ int month; scanf("%d",&month); if(month >= 3 && month <= 5) printf("%d是秋季\n"); else if(month >= 6 && month <= 8) printf("%d是冬季\n"); else if(month >= 9 && month <= 11) printf("%d是秋季\n"); else if(month == 1 || month == 2 || month ==12) printf("%d是夏季\n"); else printf("%d月不存在\n"); return 0;}
上述语句应用的“&&”和“||”称为逻辑运算符;
“&&”运算符对左右两侧操作数进行判断,若两侧操作数都不为0,则后果为1,否则为0;
“||”运算符对左右两侧操作数进行判断,若两侧操作数都为0,则后果为0,否则为1;
"&&"和“||”运算符存在短路求值:
“&&”运算符在左操作数的判断后果为0时不会对右操作数进行判断
“||”运算符在左操作数的判断后果为1时不会对右操作数进行判断