JavaSe基础篇3
1. Random工具类
Random工具类的作用是生成随机数,具体功能如下:
-
nextInt():随机产生int类型的整数
nextInt(整数n):随机产生[0,n)区间的随机整数
生成[0,max]区间随机整数:ran.nextInt(max+1)
生成[min,max)区间随机整数:ran.nextInt(max-min)+min
生成[min,max]区间随机整数:ran.nextInt(max-min+1)+min
-
nextDouble():随机产生double类型的小数,区间为[0.0,1.0)
//1.导包(import java.util.Random)
//2.创建Random类型的引用
Random ran = new Random();
//3.随机整数的功能
//[0,5)
int a = ran.nextInt(5);
System.out.println(a);
System.out.println(ran.nextInt(5));
2. 流程控制语句
2.1 顺序结构
从上到下,从左到右的执行方式。
2.2 选择结构
根据条件的选择,控制一些代码的执行。
2.2.1 if语句
-
单选择|单分支:满足条件要求就执行一些代码,不满足就不执行
if(条件表达式){ 语句体; }
执行流程:执行条件表达式,根据结果为true还是false决定是否执行语句体,true的话执行,false的话不执行。可能没有结果。
-
双选择|双分支:
if(条件表达式){ 语句体1; }else{ 语句体2; }
执行流程:执行条件表达式,根据结果为true还是false决定执行哪一个语句体,true的话执行语句体1,false的话执行语句体2。肯定存在结果。
-
多选择|多分支:
if(条件表达式1){ 语句体1; }else if(条件表达式2){ 语句体2; }else if(条件表达式3){ 语句体3; }..... else{ 如果以上都不满足,结果执行语句体n; }
最后的else可以添加可以不添加,如果有else,这个多选if结果肯定有结果,如果没有else,不一定有结果。
注:如果语句体只有一句,前后的{}可以省略,一个if语句最多只能得到一个结果
小练习:
//判断输入的月份数对应的季节
int a = 10;
System.out.println("现在是"+a+"月份");
if(a>=3 && a<=5) System.out.println("现在是春天");
else if(a>=6 && a<=8) System.out.println("现在是夏天");
else if(a>=9 && a<=11) System.out.println("现在是秋天");
else if(a==12 || (a<=2 && a>=1)) System.out.println("现在是冬天");
2.2.2 switch语句
switch语句即定值判断,代码如下:
switch(表达式){
case 值1 :
语句体1;
break;
case 值2 :
语句体2;
break;
....
default:
语句体n;
break;
}
表达式:一般为一个变量,或者就是一个表达式,可以为常量只不过没有意义。可以是以下类型:byte,short,int,char,枚举,字符串。
case:表达式的结果与case后面的值比较是否相等,相等执行后面对应的语句体,不相等就继续向下判断。
break:结束switch语句,如果没有break,就会发生case穿透,可以合理使用case穿透问题。
case穿透:从满足条件的case后面的语句体开始执行,如果执行完毕没有break,就会继续向下执行语句体不需判断case是否满足,直到遇到下一个break或者switch的结束。
default:相当于else,当上面的case都不满足,执行default后的语句体,位置可以改变,建议放在switch语句结束之前,放在结束之前可以不写break,放在其他位置需要写break。
小练习:
//判断输入的月份数对应的季节(使用case穿透)
int a = 10;
System.out.println("现在是"+a+"月份");
switch (a){
case 12:
case 1:
case 2:
System.out.println("现在是冬天");
break;
case 3:
case 4:
case 5:
System.out.println("现在是春天");
break;
case 6:
case 7:
case 8:
System.out.println("现在是夏天");
break;
case 9:
case 10:
case 11:
System.out.println("现在是秋天");
break;
default:
System.out.println("输入的不是有效的月份!!");
break;
}
2.3 循环结构
循环结构即让一些代码重复执行多次的语句结构。
2.3.1 for循环
for(条件初始化;条件判断;条件变化){
重复执行的语句体;
}
条件初始化:声明一个变量,并且第一次赋值,这个变量就是条件
条件判断:对这个条件变量进行值的判断,是一个值为boolean类型的表达式
条件变化(迭代因子):变量i自身值的改变
注:在{}语句体中可以使用条件变量i,条件变量只能在for循环中使用,属于当前这个循环,当{}中的语句体只有一句的时候,前后的{}可以省略。
小练习:
//打印100~300能被5整除的整数,一行输出8个
int count = 0;//定义一个计数器
for(int i=100;i<301;i++){
if (i%5 == 0){
System.out.print(i+"\t");
count++;//计数器增加
}
if(count == 8){
System.out.println();//每行输出8个数就换行
count = 0;//计数器归0
}
}
2.3.2 while循环
while(条件判断){
重复执行的语句体;
条件变化;
}
注:使用while循环不要忘记条件变化。
小练习:
//打印100~300能被5整除的整数,一行输出8个
int count = 0;//定义一个计数器
int i =100;//while循环开始前定义i的数值
while (i>=100 && i<=300){
if(i%5 == 0){
System.out.print(i+"\t");
count++;//计数器增加
}
if(count == 8){
System.out.println();//每行输出8个数就换行
count = 0;//计数器归0
}
i++;
}