逻辑运算符:
逻辑运算符组成的表达式,结果也是非真即假
&& (逻辑与) : 运算符两边表达式 同时为真 的时候,整个逻辑表达式的结果为真, 且运算符右侧的表达式不执行. 一假即假
|| (逻辑或) : 运算符两边表达式 同时为假 的时候 , 整个逻辑表达式的结果为假 . (任意一个表达式为真, 整个表达式结果为真) .一真即真
! (逻辑非) : 将表达式取反 .
程序结构:
顺序结构 : 从上到下顺序执行语句.
分支结构 : 通过一个判断在两个可选语句序列间选择执行 .
循环结构 : 在满足一个条件的情况下反复执行这个语句 .
例子:从键盘输⼊入⼀一个字符,如果是数字打印this is digital,如果是⼤大写字⺟母,打印this is capital letter,如果是⼩小写字⺟母,打印this is letter,如果是其他字符,打印other。
char a ='\0';
printf("输入:\n");
scanf("%s",&a);
if (a >='a'&& a <='z') {
printf("this is小写字母\n");
}elseif (a >='A' && a <='Z'){
printf("this is大写字母\n");
}elseif (a >='0' && a <='9'){
printf("this is数字\n");
}else {
printf("other\n");
}
条件表达式
条件表达式?表达式1:表达式2
如果条件表达式为真,整个表达式的值为表达式1的值。如果条件表达式为假,整个表达式的值为表达式2的值。例如:int c = a > b ? a : b;
// 输入月份和日期,判断是当年的第几天.(巧用break)
int month =0, day =0;
int sum =0;
printf("请输入月份和日期:\n");
scanf("%d%d", &month, &day);
switch (month -1 ) {
case11:
sum+=30;
case10:
sum+=31;
case9:
sum+=30;
case8:
sum+=31;
case7:
sum+=31;
case6:
sum+=30;
case5:
sum+=31;
case4:
sum+=30;
case3:
sum+=31;
case2:
sum+=28;
case1:
sum+=31;
default:
break;
}
//再加上本月的天数
sum += day;
printf("%d月%d日是当年的第%d天\n", month, day, sum);
枚举
enum 枚举名{
枚举值类1, (如果不设定起始值 , 枚举值类1的值默认是0 , 类2和类3依次加一)
枚举值类2,
... ,
};