逻辑运算符、流程控制语句与循环语句
比较:C语言通过关系运算和逻辑运算构造选择判断的条件
关系运算符:> 、>= 、< 、<=、!=
int n = 2;
n>5//关系表达式(表达式都是有值的,返回1表示真,返回0表示假,1和0都是int类型的,大小为4字节,表达式都是有类型的,关系表达式的类型为布尔类型(true、false)
例:1<2<3此表达式是先比较1<2为真,返回值为1;然后1<3,最后返回1;
逻辑运算符:&&(与)||(或)!(非)
&&(与)双目运算符;运算规则:一假则假;形式:表达式1&&表达式2(当表示式1为假后,不执行表达式2)。
||(非)双目运算符; 运算规则:一真则真;形式:表达式1 ||表达式2(当表达式1为真后,不执行表达式2)。
!(非):单目运算符;运算规则:真假相对,不是真就是假。
int x ,y, z, t;
x = y = z =1;
t = ++x || ++y && ++z;
t = ++x||(++y && ++z)
t = 1, x = 2,y = 1,z = 1;
C语言如何表示真和假?
0表示假,1表示真;
C语言如何判断真和假?
数值为零则为假;入数字0,'\0’对应的ASCII值为0,NULL表示0地址;都为假。
选择语句:
if语句:
1.单分支:处理单个情况;
语法形式:if(表达式){语句}。
表达式为真,则执行表达式;表达式执行完,if语句结束,程序继续往下
2.双分支:
处理两种情况;
语法形式:
if(表达式){语句1}
else(表达式){语句2}
表达式为真;则执行表达式1;表达式执行完,if语句结束,程序继续往下则执行
表达式为假;则执行表达式2,表达式执行完,if语句结束,程序继续往下;
3.多分支:
if(表达式){语句1}
elseif(1)(表达式2){语句2}
elseif(2)(表达式3){语句3}
else{表达式4}(语句4)
哪个表达式为真执行哪个,执行完if语句结束,程序继续往下。
条件运算:
表达式1?表达式1:表达式2
含义:判断表达式1;真则执行表达式1,假则执行表达式2;
相当于if,else的简写
switch 语句:
形式:
switch(表达式)
{
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
case 常量表达式3:
语句3;
break;
case 常量表达式n:
语句n;
break;
default:
语句n+1;
break;
}
执行规则:switch中的表达式(表达式需是整型表达式)与常量表达式进行匹配,匹配成功的语句被执行,遇到break则退出switch语句,若无匹配成功则执行default语句(不一定要放在后面,所以最好加break)。(若default拼写错误也不会报错,只是找不到匹配的标签,语句无法执行)
循环语句:
构成循环的要素:
1.有循环体(需反复执行的代码)
2.有结束的条件
3.有循环的初始条件
1.goto :本质上不是循环语句,是跳转语句;
语法:goto 标签;
2.while循环:
形式:while(表达式){语句}
语义:判断表达式:
真则执行语句,执行语句后回到表达式进行判断,满足则继续执行语句,不满足则退出while循环,继续执行后面程序。