java零基础(二)
2.5运算符
算术运算
任何数据和字符串相加都是连接数据。 syso(3+”2”) -----> 结果是32三二,不是三十二
Syso(“5+5=” +5+5)----------->结果为”5+5=”5+5;
a++ ------> a = a +1;
++a ------> a = a +1;// a++,++a,独立运算,结果一致。
Int a = 3,b;
b = a++;//a先把值赋给b,再自增。 所以b=3,a=4;
b= ++a;//a先自增再赋值给b。所以a=4,b=4
Int i = 3;
i = i++;
Syso(i) ----->i = 3;
原因:i = i++;
Temp = i;
i = i + 1;
Ii= temp;//所以i最后值为3;
Short s = 3;(1)
S += 4;//(2)
S = s + 4;//(3)
Syso(s);
(2)(3)两句话有什么区别?
(1)中右边是int类型,赋值给s时会做类型自动转换,
(1)(2)是一次运算,赋值运算符,会对值进行检查,如果在short范围之内。底层就会做自动转换,
(3)是二次运算,不做自动转换,右边的s是不确定的值2个字节 ,右边的4为4个字节,2个字节+4个字节的值不能赋回给左边的s。(3)应该是s = (short)(s + 4);
总结:
1.+=,-=,/=,%= 一次赋值运算中,底层都会对值进行检查,如果在范围之内,则会做自动转换。
2.如果对附属取模,可以把模符号忽略不计,eg:5%-3 = 2,但被模数是负数就不行了 。
^:(异或)^符号的两边结果如果相同,结果为false,
^符号的两边结果如果不同,结果为true。
True ^true=false
True ^false=true
False ^true=true
False ^false=false;
||.&&,|,&
对于&&来说,左边只要一旦为假,右边不参与运算。
&来说,不论左边的运算结果是什么,右边都参与运算。
位运算符
<<,>>,^,|,&
&:syso(6&3) --------> (位运算)结果110&011 ----> 010=2.所以结果为2
|:syso(6|3) ---------> 结果110 | 011 --->111=7;所以结果为7;
^:syso(6^3) ---------> 结果 110^ 011 ----->101 = 5,所以结果为5,
6^3^3 = 6 ---------> 一个数异或同一个数两次,结果还是这个数。
异或可用于加密功能。
移位:
3<
练习题:1.最有效率得方式算出2乘以8等于几?
Syso(2<<3) ---------->左移动三位是最快算出答案的方式
2. 对两个整数变量的值进行互换(不需要第三方变量)?
(1)Int a = 3,b = 5;
a = a + b;//8
b = a - b ;//3;
A = a - b;//5
Ps:这种方式不要用,如果2个证书的数值过大,会超过int范围,会强制转换,数据会变化。
(2) a = a ^ b; //a = 3 ^ 5;
b = a ^ b ; //( 3 ^ 5) ^ 5;b = 3;
a = a ^ b; // a ^ 5 ^ 3; = 5;
规律:一个数异或同一个数两次还是这个数。
2.6程序流程控制
条件判断
If(a > 1)
B = 20;
Else
B = 30;
//同等于B = a > 1 ? 20:30,三元运算符 = if else居于简写格式。
三目运算必须要有结果,但条件判断不需要有运算结果。
当一个代码块的作用区间结束时,内部的局部变量被释放,则变量消失。
选择结构
For循环和while循环什么区别?(内存问题)
1. for,while可以互换。
2. 格式上的不同,在使用上有些区别。
3. 如果需要通过变量来对循环进行控制,该变量只作为循环增量0000000存在时,两者就有区别了。For循环中,变量的作用域只在改变量有效。
无限循环的形式:while(true){} ; for(;【1】 ;){} 其中【1】这里默认为true
Windows系统中回车符其实是由两个符号组成的\r\n,
Linux 中回车符是\n。
其他流程控制语句
Break:跳出当前循环(循环或者switch)
Break作用的范围:要么是switch语句,要么是循环语句。当break语句单独存在时,不要定义其他语句,因为执行不到。
Xiaoming:For(int x = 0;x < 3;x++){
Xiaohhong: For (int y = 0;y < 4 ;y++) {
Syso(x)
Break;//break只跳出当前循环
}
}
如果出现循环嵌套,break想要跳出制定的循环,可通过标号完成。在循环前加名字
Continue:继续。
作用范围:循环结构。
Continue:结束本次循环,继续下次循环。如果continue单独存在时,下面不要有任何语句,因为执行不到。但是continue之前有if语句就可以执行。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
