(一)关系表达式
[ 逻辑非 优先级高于 算术运算符, 算术运算符 优先级高于 关系运算符,关系运算符 优先级高于 逻辑与 和 逻辑或运算符 ]
小例题:5>3 && 8<4 - !0
因为 包含了短路运算 ,步骤如下:
(1) 5>3 逻辑值为 1
(2) !0 逻辑值为 1
(3) 4-1 值为3
(4) 8<3 逻辑值为 0
(5) 1 && 0 逻辑值 0
所以表达式的值为 0
单目运算符: 逻辑非 只有一个操作数
双目运算符: 左操作数 + 右操作数
(二)if-else语句
汉字描述理解意思
#include <stdio.h>
// 代码结合描述理解
void main(){
// 1. if语句
if(判断条件){
如果条件为真执行此代码块 ( 如果条件为假则不执行 )
}
// 2. if-else语句
if(判断条件){
如果条件为真执行此代码块
}else{
如果条件为假执行此代码块
}
//3. if-else-if
if(判断条件1){
如果满足 [条件1] 时执行此代码块
}else if(判断条件2){
如果满足 [条件2] 时执行此代码块
}else{
如果都不满足时执行此代码块
}
//4. 嵌套if-else (if if-else-if都可以使用 不过陈述)
if(判断条件){
// 如果满足判断条件时,判断是否满足子判断条件
if(子判断条件1){
如果满足子判断条件1执行此代码块
}else{
如果不满足子判断条件1执行此代码块
}
}else{
// 如果不满足判断条件时,判断是否满足子判断条件
if(子判断条件2){
如果满足子判断条件2执行此代码块
}else{
如果不满足子判断条件2执行此代码块
}
}
}
#include <stdio.h>
void main(){
//1. if-else
int i;
scanf("%d",&i);
if(i>0){
printf("i is bigger than 0\n");
}else{
printf("i isn't bigger than 0\n");
}
//2. if-else-if 电费分段缴费问题
int number,money;
scanf("%d", & number);
if(number>500){
money=0.15;
}else if(number>300){
money=0.10;
}else if(number>100){
money=0.075;
}else if(number>50){
money=0.05
}else{
money=0
}
}
(三)switch语句
如果一个变量可以等于几个值或者几十个值得时候,使用if-else语句会导致if-else的分支非常多,可以考虑使用switch.
switch(表达式){
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
...
case 常量表达式n:
语句n;
break;
default:
语句n+1;
break;
}
说明如果加上break执行完当前条件会返回,如果没有break会继续执行下面的常量表达式