一.boolean类型的常量和变量
boolean类型的常量值有两个:false和true。在内存中占一位(不是一个字节)。不能像C语言一样使用0或1来代替false和true。Java中没有0和1来代替false和true。boolean类型常用于if语句中,作为逻辑判断条件,通常用于程序的流程控制,作为判断来进行使用,当为true时,执行程序。为false时,不执行。
boolean flag;
flag = true;
if(flag){
//true分支
}else{
//false分支
}
注意:不要写成:
boolean flag;
if(flag == true){
}
这样写很不便于程序阅读,而且容易写成flag=true,这样就不是判断flag是true还是false了,而是将true赋给了flag。flag为true,程序一定会执行,无法起到流程控制的效果。因此要写成if(flag)或if(!flag)。
二.break与continue的区别
break用于退出包含他的最内层的整个循环(结束程序块的运行)。而continue用于退出本次循环而执行下一次循环,再次执行也就是重新开始执行循环体的最初,开始新的反复。
public class Test{
public static void main(String[] args){
for(int i = 1;i<=10;i++){
if(i%5==0){
System.out.println(i);
}break;
}
}
}
无输出结果,因为i=1不满足i%5==0因此不执行,然后遇到break直接跳出循环。
public class Test{
public static void main(String[] args){
for(int i = 1;i<=10;i++){
if(i%5==0){
System.out.println(i);
break;
}
}
}
}
把break移到里面也一样。
public class Test{
public static void main(String[] args){
for(int i = 1;i<=10;i++){
if(i%5==0){
System.out.println(i);
}continue;
}
}
}
当把continue放在if语句外面时,输出为5,10。因此可以说明continue是结束本次循环,继续执行下一次。
三.char的强制类型转换
强制类型转换
for(int i=0;i<3;i++){
char temp;
temp = (char)('a'+i);
System.out.println(temp);
}
输出结果为a,b,c。此处做了强制类型转换,将'a'+i强制转换为char类型并输出打印,由于Java中字符采用的是Unicode编码表,所以字符与数字相加后默认为数字,因此必须进行强制类型转换。
for(int i=0;i<3;i++){
int temp;
temp = 'a'+i;
System.out.println(temp);
}
不进行强制类型转换,则应将temp的变量类型设置为int类型,与默认相同。输出结果为97,98,99(a,b,c的Unicode编码)。
不可以进行如下类型转换来得到a,b,c:
for (int i = 0;i<3;i++){
String temp;
temp = "a"+i;
System.out.println(temp);
}
当字符串与数字相加时,会进行自动类型转换直接变为字符串,因此所得结果为a0,a1,a2。而不是a,b,c。