目录
一.运算符
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。
1.算术运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 把两个操作数相加 | A + B 将得到 30 |
- | 从第一个操作数中减去第二个操作数 | A - B 将得到 -10 |
* | 把两个操作数相乘 | A * B 将得到 200 |
/ | 分子除以分母 | B / A 将得到 2 |
% | 取模运算符,整除后的余数 | B % A 将得到 0 |
++ | 自增运算符,整数值增加 1 | A++ 将得到 11 |
-- | 自减运算符,整数值减少 1 | A-- 将得到 9 |
例子
%是取余,得到的是余数, 比如 5%2 得到的是 1;
++ 和 -- 如果是 a++ 则先取值在 a+1
如果是 ++a 那就是先加1,再取值,哪个在前先走哪一个,
具体的可以在上面的截图中看到,
2.关系运算符
运算符 | 描述 | 实例 |
---|---|---|
== | 检查两个操作数的值是否相等,如果相等则条件为真。 | (A == B) 为假。 |
!= | 检查两个操作数的值是否相等,如果不相等则条件为真。 | (A != B) 为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 | (A > B) 为假。 |
< | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 | (A < B) 为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 | (A >= B) 为假。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 | (A <= B) 为真。 |
3.逻辑运算符
运算符 | 描述 | 实例 |
---|---|---|
&& | 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 | (A && B) 为假。 |
|| | 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 | (A || B) 为真。 |
! | 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 | !(A && B) 为真。 |
4.位运算符
和上面的逻辑运算符很相似,不过这个是在位上运算
运算符 | 描述 | 实例 |
---|---|---|
& | 如果两个位上都为1,结果为1,反之都为0 | 0&0=0; 0&1=0; 1&0=0; 1&1=1; |
| | 如果两个相应的位都为 0,则结果为 0,否则为 1。 | 0|0=0; 0|1=1; 1|0=1; 1|1=1; |
^ | 如果两个相应的位值相同,则结果为 0,否则为 1 | 0^0=0; 0^1=1; 1^0=1; 1^1=0; |
~ | 对操作数的每一位执行逻辑取反操作,即将每一位的 0 变为 1,1 变为 0。 | ~1=0; ~0=1; |
<< | 将操作数的所有位向左移动指定的位数 | 1 << 2为 100 转化为10进制 4 |
>> | 将操作数的所有位向右移动指定的位数 | 100 >>2 为 1 |
5.赋值运算符
就是把算术运算的结果,赋值出去, a + b =c , 要写成 c = a + b ,因为是向左赋值,
c = c + a; 可以简写成 c+=a;
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符,把右边操作数的值赋给左边操作数 | C = A + B 将把 A + B 的值赋给 C |
+= | 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 | C += A 相当于 C = C + A |
-= | 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 | C -= A 相当于 C = C - A |
*= | 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 | C *= A 相当于 C = C * A |
/= | 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 | C /= A 相当于 C = C / A |
%= | 求模且赋值运算符,求两个操作数的模赋值给左边操作数 | C %= A 相当于 C = C % A |
<<= | 左移且赋值运算符 | C <<= 2 等同于 C = C << 2 |
>>= | 右移且赋值运算符 | C >>= 2 等同于 C = C >> 2 |
&= | 按位与且赋值运算符 | C &= 2 等同于 C = C & 2 |
^= | 按位异或且赋值运算符 | C ^= 2 等同于 C = C ^ 2 |
|= | 按位或且赋值运算符 | C |= 2 等同于 C = C | 2 |
6.杂项运算符
运算符 | 描述 | 实例 |
---|---|---|
sizeof() | 返回变量的大小。 | int a ; sizeof(a) 将返回 4 |
& | 返回变量的地址。 | &a; 将给出变量的实际地址。 |
* | 指向一个变量。 | *a; 将指向一个变量。 |
? : | 条件表达式 | 如果条件为真 ? 则值为 X : 否则值为 Y |
7.运算符优先级
乘除运算符具有比加减运算符更高的优先级。括号的优先级更高.
逻辑的相比较会更低一点.
二.判断
1.if
2.if..else..
3. if ..else if ..else
这个已经等价于 switch了,和 if ..else if ..else. 比起来switch写起来很快,代码量更少
4.switch
三. 循环
1.while
while(条件为真)
{
//循环调用里面的代码
}
最后一次运行a为0,不满足 a>0这个条件 于是跳出循环
2.do .. while
do{
//运行这里的语句
}while(条件为真)
和 while的区别是 while(条件为假){ 不会执行这里面的语句} do(条件为假){也会执行一次}
3.for
1.先初始化一个变量
2.判断是否为真
3.为真则执行这里
4.然后对变量进行操作,更改值
5.然后继续执行2,来进行判断,为真则继续从2开始重复,为假则跳过,开始执行{}大括号后面的语句.
4.循环控制语句
控制语句 | 描述 |
---|---|
break 语句 | 终止循环 |
continue 语句 | 结束此处循环重新开始下次循环迭代。 |
goto 语句 | 将控制转移到被标记的语句。 |
1.break
可以看出条件成立,执行了3, 之后进到break语句,直接结束循环,进行下面的语句
可以和下面的continue 作比较 ,一个直接退出整个循环,一个是退出当前这次,循环
2.continue
成立的时候执行了一下3,然后继续循环,没有执行下面的4.
3.goto
可以看到 也是结束整个循环,直接跳转到 goto标记的语句,而且中间的语句也会跳过不再执行.