判断过程
1.算术比较
这些运算都会得到int类型的值,如果比较结果为真,每个操作的结果都是1,如果比较结果为假,每个操作的结果都是0.2.基本的if语句
int my_weight = 170;int your_weight = 200;if(your_weight > my_weight) printf("你比我重");if(my_weight > your_weight) printf("我比你重");复制代码
这里有两个if语句,比较表达式位于if后面的括号中,如果比较的结果为true,就执行if后面的语句,如果表达式是false,就跳过if后面的语句。
3.扩展if语句 : if-else
if(expression) statement1;else statement2;Next_statement;复制代码
- 如果expression的值是true,就执行statement1,然后继续执行Next_statement;
- 如果expression的值是false,就执行statement2,然后继续执行然后继续执行Next_statement;
4.在if语句中使用代码块
还可以用{}括号中的一个语句块来替换if语句中的statement1或statement2,或者都替换,因为如果不加{},那么if语句后面只能执行一条语句,可以使用{}来执行多条语句,不管多少条,都建议使用{},使得程序简洁明了。
5.逻辑运算符
- 逻辑与运算符 && 逻辑与运算符&&是一个二元运算符,因为它合并两个逻辑表达式,即两个值为true或false的表达式。 test1 && test2 如果两个表达式test1和test2的值都为true,这个表达式就等于true,如果一个或两个操作数为false,该操作的结果就为false。
- 逻辑或运算符 || 逻辑或运算符||用于两个或多个条件为true的情形,如果运算符的一个或两个操作数是true,那么结果就是true,只有两个操作数都是false,其结果才是false
- 逻辑非运算符 ! !运算符是一元运算符,因为它只有一个操作数,逻辑非运算符翻转逻辑表达式的值,使true变为false,false变为true。
- 运算符的优先级 (哈哈,这部分先不管了,在写代码的时候还是多使用小括号括起来,使得程序清晰易懂,也不会造成逻辑混乱)
6. switch语句
switch语句允许根据一个整数表达式的结果,从一组动作中选择一个动作,
switch(ticket_number){ case 35: printf("you win first prize!"); break; case 122: printf("you win second prize!"); break; case 144: printf("you win third prize!"); break; default: printf("you lose!"); break;}复制代码
在关键词switch后面是一个表达式,如果表达式的值和下面case中的一个对应上,就执行响应的case后面的语句,遇到break语句跳出switch。如果没有匹配的值,就执行default语句后面的语句。
按位运算符
位运算符是对整数的二进制进行操作。
这些运算符都只能用于整数类型,~运算符是一元运算符,只能处理一个操作数,其他都是二元运算符。- 按位与运算符&合并操作数的对应位,只有两个位都是1才是1
- 按位或运算符|,只要对应位中有一个或以上的1,结果就是1
- 异或运算符^,如果两个位是不同的,按位异或就生成1,否则就是0
- 一元运算符~会翻转其操作数,将1变成0,将0变成1.
- 移位运算符会把左操作数的位移动右操作数指定的位数: 左移位运算符会把二进制值向左移指定的位数,同时在右边补0;右移位运算符会向右位移,对于无符号的数据,会在左边的空位中填充0,对于带符号的负值,其最左一位是1,则位移结果取决于系统,在大多数情况下,符号位会扩散,所以向右位移时补入的是1,但在一些系统上,补入的是0.