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个字节 ,右边的44个字节,2个字节+4个字节的值不能赋回给左边的s。(3)应该是s = short)(s + 4;

 

总结:

1.+=,-=,/=,%= 一次赋值运算中,底层都会对值进行检查,如果在范围之内,则会做自动转换。

2.如果对附属取模,可以把模符号忽略不计,eg5%-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< 结果为:3*(2^x) x次方

练习题:1.最有效率得方式算出2乘以8等于几?

Syso2<<3)   ---------->左移动三位是最快算出答案的方式

 

2. 对两个整数变量的值进行互换(不需要第三方变量)?

   1Int 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. forwhile可以互换。

2. 格式上的不同,在使用上有些区别。

3. 如果需要通过变量来对循环进行控制,该变量只作为循环增量0000000存在时,两者就有区别了。For循环中,变量的作用域只在改变量有效。

 

 

无限循环的形式:whiletrue{}  for(;【1】 ;){}  其中【1】这里默认为true

 

Windows系统中回车符其实是由两个符号组成的\r\n,

Linux 中回车符是\n

 

 

其他流程控制语句

Break:跳出当前循环(循环或者switch

Break作用的范围:要么是switch语句,要么是循环语句。当break语句单独存在时,不要定义其他语句,因为执行不到。

 

Xiaoming:Forint x = 0;x < 3;x++{

Xiaohhong: For int y = 0;y < 4 ;y++{

Syso(x)

Break;//break只跳出当前循环

}

}

如果出现循环嵌套,break想要跳出制定的循环,可通过标号完成。在循环前加名字

 

Continue:继续。

作用范围:循环结构。

Continue:结束本次循环,继续下次循环。如果continue单独存在时,下面不要有任何语句,因为执行不到。但是continue之前有if语句就可以执行。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部