1.关系运算符和关系表达式
关系运算符用于比较两个量的值,并返回一个逻辑值(真或假)。常见的关系运算符包括:
1. 相等 (==)
2. 不相等 (!=)
3. 大于 (>)
4. 小于 (<)
5. 大于等于 (>=)
6. 小于等于 (<=)
关系运算符优先级低于算术运算符,高于赋值运算符。
关系表达式的形式
表达式 关系运算符 表达式
例子
a+b > c-d
x > 6
'b'-1 < c
i * 5 - 6 == k+1
也允许出现嵌套情况:
a > (b < c)a != (c==d)
C语言中,0表示假,非0表示真
2.逻辑运算符和逻辑表达式
逻辑表达式使用逻辑运算符来组合多个关系表达式,最终得到一个逻辑值(真或假)。
常见的逻辑运算符包括:逻辑与(&&)、逻辑或(||)和逻辑非(!)。
例子
#include <stdio.h> int main() { int a = 10, b = 20, c = 30; // 逻辑与运算符(&&):只有所有条件都为真时,整个表达式才为真 if (a < b && b < c) { printf("a 小于 b,并且 b 小于 c\n"); } else { printf("条件不满足\n"); } // 逻辑或运算符(||):只要有一个条件为真,整个表达式就为真 if (a == 5 || b == 20) { printf("a 等于 5 或者 b 等于 20\n"); } else { printf("条件不满足\n"); } // 逻辑非运算符(!):对条件进行取反 if (!(a > b)) { printf("a 不大于 b\n"); } else { printf("a 大于 b\n"); } return 0; }
3.条件运算符和条件表达式
条件运算符(三元运算符)是C语言中的一个特殊运算符,用于根据条件选择两个表达式中的一个。
条件表达式由三部分组成:条件、真值表达式和假值表达式。
其语法为:条件 ? 真值表达式 : 假值表达式(三目运算符)。
例子
#include <stdio.h> int main() { int a = 10, b = 20; int max; // 使用条件运算符来比较两个数的大小,并将较大的值赋给 max max = (a > b) ? a : b; // 输出较大的值 printf("较大的值是: %d\n", max); return 0; }
4.if语句
1)if语句
#include <stdio.h> int main() { int num = 10; if (num > 0) { printf("num 是一个正数\n"); } return 0; }
if
语句根据条件 num>0 的结果来判断是否执行后面的语句。
2) if...else
语句
#include <stdio.h> int main() { int num = 10; if (num > 0) { printf("num 是一个正数\n"); } else { printf("num 不是一个正数\n"); } return 0; }
根据条件 num >0 判断执行
if
分支还是else
分支。
3) if...else if
语句
#include <stdio.h> int main() { int num = 10; if (num > 0) { printf("num 是一个正数\n"); } else if (num == 0) { printf("num 是零\n"); } else { printf("num 是一个负数\n"); } return 0; }
在这个例子中,根据不同的条件判断来执行相应的分支。如果
num>0
,则执行第一个分支;如果 num==0,则执行第二个分支;如果都不成立,则执行else
分支。
4)if语句嵌套
#include <stdio.h> int main() { int num1 = 10, num2 = 20; if (num1 > 0) { if(num2 > 0) { printf("num1和num2均为正数\n"); } else { printf("num1为正数,num2不是正数\n"); } } else { if(num2 > 0) { printf("num2为正数,num1不是正数\n"); } else { printf("num1和num2均不是正数\n"); } } return 0; }
利用了
if
语句的嵌套结构来判断两个数num1
和num2
的正负情况,实现了更复杂的逻辑分支。
5.switch语句
#include <stdio.h> int main() { int choice; printf("请输入选项(1-3):"); scanf("%d", &choice); switch (choice) { case 1: printf("您选择了选项1\n"); break; case 2: printf("您选择了选项2\n"); break; case 3: printf("您选择了选项3\n"); break; default: printf("无效选项\n"); } return 0; }
在这个例子中,用户输入一个整数选项,程序根据用户输入的选项值执行不同的代码块。如果用户输入1,则输出"您选择了选项1";如果输入2,则输出"您选择了选项2";如果输入3,则输出"您选择了选项3";如果输入其他值,则输出"无效选项"。
switch
语句中的值可以是整数类型(如整数常量、变量或表达式的值),每个case
标签表示一个分支,当switch
后的值等于某个case
标签的值时,程序会执行该分支的代码块。default
标签是可选的,用于处理没有匹配到任何case
的情况。
break 和 continue
除了
break
语句之外,C语言中还有一种跳出循环的语句叫做continue
。#include <stdio.h> int main() { // 使用 break 跳出循环的例子 printf("使用 break 跳出循环的示例:\n"); for (int i = 1; i <= 5; i++) { if (i == 3) { break; // 跳出循环 } printf("%d ", i); } printf("\n"); // 使用 continue 跳过当前循环执行下一次循环的例子 printf("\n使用 continue 跳过当前循环执行下一次循环的示例:\n"); for (int j = 1; j <= 5; j++) { if (j == 3) { continue; // 跳过当前循环执行下一次循环 } printf("%d ", j); } printf("\n"); return 0; }
在上面的例子中,第一个循环使用了
break
语句,当i
的值等于3时,break
语句会使循环立即终止,跳出整个循环,因此3
之后的数字不会被输出。第二个循环使用了
continue
语句,当j
的值等于3时,continue
语句会跳过当前循环的剩余部分,直接执行下一次循环,因此3
不会被输出,但后续的数字会继续输出。综上所述,
break
用于跳出循环,终止整个循环的执行;而continue
用于跳过当前循环的剩余部分,继续下一次循环的执行。
~over~