java杂记
java默认的整数型为int,如果想使用long型数据需要在数字后面加上L。如:100L。同理,默认的小数是double,想使用float则需在数字后面加F。如:7.2F。
整数才能取余%、整除/。
赋值运算会将结果自动转成左值的类型。
&&和||会出现“短路”的情况:
&&的左侧如果是false,则&&右侧的语句不再执行;
||的左侧如果是true,则||右侧的语句不再执行;
如:int a=0;system.out.println((false&&(a++)==0)?a:a); 因为false把&&短路,所以(a++)==0不执行,所以a不会自增,a的值仍为0。
&, |, ^ 分别是按位与,按位或,按位异或,两侧既可以是int(返回值为int),也可以是Boolean(返回值为Boolean),但&和|没有“短路”的情况。
Scanner类:
import java.util.Scanner;
......
Scanner sc=new Scanner(System.in);
String s=sc.next();
Scanner对象被创建之后,可以多次被调用。
Random类:
import java.util.Random;
......
Random r=new Random();
int i=r.nextInt(10); //随机生成[0,10)的整数
double d=r.nextDouble(); //随机生成[0,1)的小数
注:nextInt()可以指定生成的范围,nextDouble()不能指定范围
switch语句
switch-case
switch的条件只能byte,short,int,long(在JDK7之后switch的条件可以接收String)。
break标记:
outer: for(int i=1;i<=9;++i){
for(int j=1;j<=i;++j){
if(i<4) break outer; } }
如果不设置标记,那么break只能跳出一层循环,而设置了标记之后可以跳出多层循环(至标记所在层)。