switch语句
格式
switch (表达式) {
case 1:
语句体1;
break;
case 2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执行流程
从上至下,逐个case值判断,直到找到对应的case值为止;如果都找不到,则执行default;
注意事项
1:switch语句只能写 byte,short,int,char,String,枚举类型的数据
2:default语句的位置是任意的;
3:如果不写break关键字会发生穿透现象
穿透现象就行从选中的case开始,一直向下执行,不再判断其他case值,直到遇到breaak为止,没有break就穿透到switch的结尾;
循环
概念
重复的执行某一段代码
格式
for循环
for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
while循环
初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}
do while循环
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
//特点 先斩后奏
死循环
不会停止的循环就是死循环
循环嵌套
概念 在循环体中写循环就是循环嵌套
特点 外层循环变量变化一次,内层循环循环一圈
跳转语句
continue 忽略一次循环
break 打破循环
三种循环的区别
1: for和while是先判断条件,后执行循环体,而dowhile循环是先执行循环体再判断条件
2: for循环结束后,for中的变量不能继续使用了,而while结束后,变量可以继续使用;
Random
作用 生成一个指定范围内的随机数
使用步骤 3步
1: 导包 import java.util.Random
2:创建对象 Random r=new Random();
3:调用方法 int xxx=r.nextInt(最大范围值);
注意事项
默认情况下生成的数字包含0不包含指定的最大值
猜数字小游戏
1: 生成一个随机数
2:死循环让用户一直输入要猜的数字
3:使用用户输入的数字与生成的随机数比较
4:根据比较的大小关系,打印相应的提示,如果猜对了,使用break打破循环;
代码展示
/*
需求:
打印出1--100之间的所有包含6的数字,并且每5个数字换一行;
分析:
1:使用循环,获取1--100之间的数字;
2:求出这些数字的个位和十位;
3:判断这个数字的个位和十位是否是6,如果是则打印之,且打印时不换行;
4:统计已经打印的数字的个数,判断,如果个数是5的倍数时则换行;
*/
public class KeHou{
public static void main(String[] args){
//在这里定义一个变量,用于统计已经打印的数字的个数
int count = 0;
//1:使用循环,获取1--100之间的数字;
for(int i=1;i<=100;i++){
//2:求出这些数字的个位和十位;
int ge = i%10;
int shi = i/10%10;
//3:判断这个数字的个位和十位是否是6,
if(ge==6||shi==6){
System.out.print(i+"\t");
//4:统计已经打印的数字的个数,判断,如果个数是5的倍数时则换行;
count++;
//判断,如果个数是5的倍数时则换行;
if(count%5==0){
System.out.println();
}
}
}
}
}
/*
需求:
生成10个30至50之间的随机数;
分析:
要想得到随机数,必须使用java中的Random,而Random中的nextInt方法生成的随机数一定是[0-?)
我们想要的是 [30--50]
Random生成的 [0 -- ?)
要想从第7行的区间得到第6行的区间,只能在Random生成的数字的基础上加上 30,再保证加30之后,不超过50即可;
总结得出通用公式:
int x = r.nextInt(最大值-最小值+1)+最小值;
步骤:
1:导包 import java.util.Random;
2:创建对象 Random r = new Random();
3:写一个循环,保证循环10次
4:在循环体中,套用上面总结的公式,即可得到[30--50]区间的随机数
*/
//1:导包 import java.util.Random;
import java.util.Random;
public class RandomDemo{
public static void main(String[] args){
//2:创建对象 Random r = new Random();
Random r = new Random();
//3:写一个循环,保证循环10次
for(int i=1;i<=10;i++){
//4:在循环体中,套用上面总结的公式,即可得到[30--50]区间的随机数
int x = r.nextInt(50-30+1)+30;
System.out.println("第"+i+"次生成的随机数是:"+x);
}
}
}
/*
需求:
使用while循环,打印出所有的水仙花数;
分析:
1:定义一个变量,用于保存数字100;
2:写while循环,在循环中,求出数字的个位,十位,百位,并计算立方和是否等于本身;
3:让数字++;
*/
public class WhileDemo{
public static void main(String[] args){
int i=100;
while(i<=999){
//求出数字的个位,十位,百位,并计算立方和是否等于本身;
int ge = i%10;
int shi = i/10%10;
int bai = i/100;
//计算立方和是否等于本身;
if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
System.out.println(i);
}
//3:让数字++;
i++;
}
}
}