C语言是结构化的程序设计语言,这里的结构指的是顺序结构、选择结构、循环结构
C语言中0为假,非0为真
一.if语句
默认跟一条语句,如果想要跟多条语句用{}括起来
1.if的语法
if(表达式) //如果表达式为真则执行语句1
语句1;
else //否则执行语句2
语句2;
2.if的嵌套
3.else if
4.悬空else
如果有多个 if 和 else , else 总是跟最接近的 if 匹配。
else与第二个if匹配,构成一条if--else语句
因为第一个if表达式内的结果为假,所以后面的语句不执行,结果就是没有任何信息被打印
如果想要else与第一个if匹配,代码应写为以下形式
二.关系操作符
C 语⾔⽤于⽐较的表达式,称为 “关系表达式”,⾥⾯使⽤的运算符就称为“关系运算符”
主要有下⾯6个:
>⼤于运算符
<⼩于运算符
>=⼤于等于运算符
<=⼩于等于运算符
==相等运算符
!= 不相等运算符
关系表达式通常返回0或1,表示真假
注意:相等运算符 == 与赋值运算符 = 是两个不⼀样的运算符,==是比较是否相等,=是把左边的值赋给右边,不要混淆
如果不小心写成了if(a = 3),表达式里面的意思就变为把3的值赋给a,表达式里面的结果为非0,表示真
所以变量和常量作比较时,建议将变量写在==的右边。
避免多个关系符连用
int a = 15;
int b = 17;
int c = 3;
a < b < c;//这个式子先算左边a < b为真,结果为1;接着1和c比较,1 < c为真,结果为1
三.逻辑运算符
逻辑运算符提供逻辑判断功能,⽤于构建更复杂的表达式,主要有下⾯三个运算符。
! :逻辑取反运算符(改变单个表达式的真假)。
&& :逻辑与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。
|| :逻辑或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。
短路
C语⾔逻辑运算符有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的。
如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。
对于&&操作符来说,左边操作数的结果是0的时候,右边操作数就不再执⾏。
对于 || 操作符来说,左操作数的结果不为0时,就⽆需执⾏右操作数。
四.条件操作符
条件操作符也叫三目操作符,需要接受三个操作数的,形式如下:
exp1 ? exp2 : exp3
条件操作符的计算逻辑是:如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果
exp1 为假, exp3 计算,计算的结果是整个表达式的结果。
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int max = a > b ? a : b;//如果a > b为真,则max = a;如果a > b为假,则max = b
五.switch语句
1.switch的语法
switch (expression) //expression:整型表达式或变量
{
case value 1: //case只决定入口 value:整型常量
statement;
break; //break跳出switch语句.如果没有break,下面的语句将继续执行,直 到遇到break或者switch语句执行完
case value 2:
statement;
break;
default:
statement;
break;
}
上⾯代码中,根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值,就执行defauit分支
#include<stdio.h>
int main()
{
int day = 1;
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期一");
break;
case 2:
printf("星期二");
break;
case 3:
printf("星期三");
break;
case 4:
printf("星期四");
break;
case 5:
printf("星期五");
break;
case 6:
printf("星期六");
break;
case 7:
printf("星期天");
break;
default:
break;
}
return 0;
}