常见的三种循环
常规循环
for(int i =0;i<10;i++){
}
零循环
int num = 60;
while(num<=50){
}
无限循环
死循环
while(1==1){
}
注意:
无限循环一般需要配合适当的终止条件
所以会搭配if分支语句以及break
无限循环更简洁的写法
while(True){
需要重复执行的内容
if(条件){
需要处理的事情
break;
}
}
猜数字版本一
电脑随机一个数
玩家无限次猜
猜对就退出循环
import java.util.Random;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
// 电脑生成一个随机数
// 获得一个随机对象
Random random = new Random();
// 随机对象调用方法,得到一个随机数(假定随机数的值是0-9)
int randNum = random.nextInt(9);
System.out.println("猜数字游戏开始:");
// 玩家无限次的猜这个数
while (true) {
// 从键盘接收用户输入的数据
// 获得一个扫描仪对象
Scanner scanner = new Scanner(System.in);
// 扫描仪对象调用方法得到一个用户输入的数值
System.out.println("请输入一个数字:");
int userNum = scanner.nextInt();
// 判断用户输入的这个数与电脑随机的数是否相等
// 两个int数据通过==来比较是否相等
if (randNum == userNum) {
System.out.println("猜对了,游戏结束");
break;
} else if (userNum > randNum) {
System.out.println("太大了");
} else if (userNum < randNum) {
System.out.println("太小了");
}
}
// 游戏结束
System.out.println("game over");
}
}
版本2 三次以内的猜数字
import java.util.Random;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
// 定义变量,游戏次数
int times = 0;
// 电脑生成一个随机数
// 获得一个随机对象
Random random = new Random();
// 随机对象调用方法,得到一个随机数(假定随机数的值是0-9)
int randNum = random.nextInt(9);
int userNum = 0;
System.out.println("猜数字游戏开始:");
// 玩家无限次的猜这个数
while (times < 3) {
// 游戏次数+1
times++;
System.out.println("当前是第几轮游戏:" + times);
// 从键盘接收用户输入的数据
// 获得一个扫描仪对象
Scanner scanner = new Scanner(System.in);
// 扫描仪对象调用方法得到一个用户输入的数值
System.out.println("请输入一个数字:");
userNum = scanner.nextInt();
// 判断用户输入的这个数与电脑随机的数是否相等
// 两个int数据通过==来比较是否相等
if (randNum == userNum) {
break;
} else if (userNum > randNum) {
System.out.println("太大了");
} else if (userNum < randNum) {
System.out.println("太小了");
}
}
// 声明胜负
// 加一个判断
if (randNum == userNum) {
System.out.println("胜利");
} else {
System.out.println("失败");
}
// 游戏结束
System.out.println("game over");
}
}
另一个版本
import java.util.Random;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
// 变量,胜负
boolean isWin = false;
// 定义变量,游戏次数
int times = 0;
// 电脑生成一个随机数
// 获得一个随机对象
Random random = new Random();
// 随机对象调用方法,得到一个随机数(假定随机数的值是0-9)
int randNum = random.nextInt(9);
int userNum = 0;
System.out.println("猜数字游戏开始:");
// 玩家无限次的猜这个数
while (times < 3) {
// 游戏次数+1
times++;
System.out.println("当前是第几轮游戏:" + times);
// 从键盘接收用户输入的数据
// 获得一个扫描仪对象
Scanner scanner = new Scanner(System.in);
// 扫描仪对象调用方法得到一个用户输入的数值
System.out.println("请输入一个数字:");
userNum = scanner.nextInt();
// 判断用户输入的这个数与电脑随机的数是否相等
// 两个int数据通过==来比较是否相等
if (randNum == userNum) {
isWin = true;
break;
} else if (userNum > randNum) {
System.out.println("太大了");
} else if (userNum < randNum) {
System.out.println("太小了");
}
}
// 声明胜负
// 加一个判断
String result = isWin ? "胜利" : "失败";
System.out.println("最终结果" + result);
// 游戏结束
System.out.println("game over");
}
}
版本3 积分制
一开始我有100分
猜一次扣30分
猜对一次加50分
import sun.font.TrueTypeFont;
import java.util.Random;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
// 变量,初始积分
int score = 100;
// 变量,胜负
boolean isWin = false;
// 定义变量,游戏次数
int times = 0;
// 电脑生成一个随机数
// 获得一个随机对象
Random random = new Random();
// 随机对象调用方法,得到一个随机数(假定随机数的值是0-9)
int randNum = random.nextInt(9);
int userNum = 0;
System.out.println("猜数字游戏开始:");
// 玩家无限次的猜这个数
while (score >= 30) {
// 显示当前积分
System.out.println("当前积分:" + score);
// 游戏次数+1
times++;
// 积分扣30
score -= 30;
System.out.println("当前是第几轮游戏:" + times);
System.out.println("扣除30分后,剩余积分" + score);
// 从键盘接收用户输入的数据
// 获得一个扫描仪对象
Scanner scanner = new Scanner(System.in);
// 扫描仪对象调用方法得到一个用户输入的数值
System.out.println("请输入一个数字:");
userNum = scanner.nextInt();
// 判断用户输入的这个数与电脑随机的数是否相等
// 两个int数据通过==来比较是否相等
if (randNum == userNum) {
isWin = true;
// 获得积分
score += 50;
// 询问用户是否要继续下一把
System.out.println("是否继续下一把游戏?继续请按y,其它键退出");
String isPlay = scanner.next(); // 如果用户输入y就继续,否则就退出
// 什么情况下break 如果用户输入的不是y
if (!isPlay.equals("y")) {
break;
}
} else if (userNum > randNum) {
System.out.println("太大了");
} else if (userNum < randNum) {
System.out.println("太小了");
}
}
// 声明胜负
// 加一个判断
String result = isWin ? "胜利" : "失败";
System.out.println("最终结果" + result);
// 游戏结束
System.out.println("game over");
}
}