第3章 控制程序流程
1.赋值和指派
赋值动作以"=" 运算符
对基本型别:A=B,B的内容复制给A 如果你修改A值,B不会被修改
对象而言:实际操作的是reference 所以像上面的话就指向了同一个对象
2.运算
int i=9 与 Integer i=new Integer(9) 是不一样的
后者是对象的声明
对象的比较:内容和引用的比较
对象内容的比较:object1.equals(object2)
<!注意!>
€
为甚么第1个结果是true,第2个是false
以下引至JavaAPI :
Object 类的 equals 方法实现对象上差别可能性最大的相等关系;
即,对于任何非空引用值 x 和 y,当且仅当 x 和 y <引用同一个对象>时,
此方法才返回 true(x == y 具有值 true)
指向同一个对象是才返回true
3.位运算符
AND & 2个输入符皆为1时,才为1,否则为0
OR | 任何一个为1,就为1;2个都是0时,才为0
XOR ^ 2个输入位恰有1个为1时才为1,不能同时为1
NOT ~ 仅仅接受1位操作数,产生输入位的反相
<以上的位运算符除NOT(~)都可以和=号并用>
4.位移运算符
只有<<,>>,<<=,>>=,>>>=
没有<<<=
并且只能用于整数型别的数上(byte,short,int,long)
<<: 左操作数向左移,左移的个数由右操作数决定
------------------
Ex: byte i=4;
i<<=2;
------------------
二进制表示: 00000100 4
<<向左移2位 00010000 16
-------------------
Ex: byte i=-4;
i<<=2;
-------------------
负数是先计算正数再取反(??)
>>:操作数是正数的,则左操作数向右移
操作数是负数的,如果原值是正数,较高位补0
原值是负数,较高位补1
而>>>是原值是正还是负 都在较高位处处补0
<byte和short计算先晋升为int,最后再转化为byte或者short>
5.if-else三元运算符
boolean expression ? value1:value2
true就执行value1,false就执行value2
6.String运算问题
------------------------
Ex: int x=1,y=2,z=3;
String s="x,y,z"
System.out.println(s+x+y+z);
System.out.println(x+y+z+s);
-------------------------
results: x,y,z123
6x,y,z
7.当if小括号里面的2个类型均是boolean时:
boolean i=false,j=false;
if(i==j){
System.out.println("i==j");
}
if(i=j){
System.out.println("i=j");
}
boolean i=true,j=true;
if(i==j){
System.out.println("i==j");
}
if(i=j){
System.out.println("i=j");
}
如果i与j true false不一样 if(i=j)后面的句子是不会被执行的
如果i与j同是false if(i=j)后面的句子不会被执行
如果i与j同是true if(i=j)后面的句子却会被执行
8.数据类型之间的转换
小转大是自动转换 大转小是强制转换
float,int,boolean ---> string
String.valueOf(i)
String --->int,float,
Integer.parseInt(i)
String --->long,double
Long.parseInt(i)
Double.parseInt(i)
9.流程控制
if-else else字句是可有可无
while 在循环开始时会评估一次 执行一次以后会再评估的
do-while 语句至少执行一次,即使是开始就评估为false
for(initialization;boolean-exp;step)
在for小括号里的第1部分和第3部分可以由多个逗号(,)分隔的句子构成
他们会被依序执行
break 是跳出循环体 不再执行循环体里的部分
continue 是回到循环起始处,开始下一个循环
switch
语法:switch(integral-sele) {
case intergral-sele1 :statement; break;
case intergral-sele2 :statement; break;
case intergral-sele3 :statement; break;
......
default : statement;
}
<注意>
如果没有break语句,语句执行到可执行的条件句子以后,后面的语句会继续执行
如果没有break语句,也找不到可执行的句子,如果有default语句,会执行
default语句以及default以后的句子
TO BE CONTINUED ......
MACINTER.
posted on 2006-07-28 17:22
CoffeeNight 阅读(246)
评论(0) 编辑 收藏