文章目录
Demo03-程序流程控制、Random类
1.顺序结构
程序默认流程
2.分支结构
2.1if分支
2.2switch分支
- 表达式类型只能是byte,short,int,char,JDK5开始支持枚举,JDK7开始支持String.不支持double,float,long(double和float计算不精确)
- case给出的值不允许重复,且只能是字面量,不能是变量
- 不要忘记写break,否则会出现穿透现象(如果匹配到的case没有break,就会不再比较后面的case是否匹配,而是直接执行case中的代码,直到遇见一个case有break才会跳出)
存在多个case分支的功能代码是一样时,可以用穿透性把流程集中到同一处理,这样可以简化代码
public class SwicthDemo4 {
public static void main(String[] args) {
int month = 7;
switch (month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(month +"是31天!");
break;
case 2:
System.out.println(month +"月闰年为29天、非闰年为28天!");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(month +"是30天!");
break;
default:
System.out.println("数据有误!");
}
}
}
3.循环结构
3.1for循环
3.2while循环
- while循环和for循环功能上是完全一样的,for能解决的while也能解决,反之亦然
- 知道循环几次使用for;不知道循环几次建议使用while
3.3do-while循环
3.4死循环,循环嵌套,break,continue
int okPassword = 520;
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请您输入正确的密码:");
int password = sc.nextInt();
if(password == okPassword){
System.out.println("登录成功了~~~");
break;
}else {
System.out.println("密码错误!");
}
}
场景:假如你有老婆,你老婆罚你说3天,每天5句我爱你,但是说到第二天的第3句就心软了,以后都不用说了!
OUT:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 5; j++) {
System.out.println("我爱你~~");
if(i == 2 && j == 3){
break OUT; // 指定跳出外部循环,并结束外部循环了!
}
}
}
4.案例技术:Random类——猜数字游戏
4.1Random类
// 3 - 17 ==> -3 ==> (0 - 14) + 3
int data = r.nextInt(15) + 3;//生成0~14的随机整数
System.out.println(data);
4.2猜数字游戏
import java.util.Random;
import java.util.Scanner;
public class RamdomTest2 {
public static void main(String[] args) {
// 1、随机一个幸运号码 1- 100之间 (0 - 99) + 1
Random r = new Random();
int luckNumber = r.nextInt(100) + 1;
// 2、使用一个死循环让用户不断的去猜测,并给出提示
Scanner sc = new Scanner(System.in);
while (true) {
// 让用户输入数据猜测
System.out.println("请您输入猜测的数据(1-100):");
int guessNumber = sc.nextInt();
// 3、判断这个猜测的号码与幸运号码的大小情况
if(guessNumber > luckNumber){
System.out.println("您猜测的数据过大~");
}else if(guessNumber < luckNumber){
System.out.println("您猜测的数据过小");
}else {
System.out.println("恭喜您,猜中了,可以去买单了~~~");
break; // 直接跳出并结束当前死循环!!
}
}
}
}