大神们,关于java的练习题,实在不会了,求助

要求在图片上... 要求在图片上 展开
 我来答
雪飞潇潇
2018-03-07 · TA获得超过6273个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:844万
展开全部

需要用到的知识点: 随机数,异常处理,循环等

参考代码: 可以根据需求自行修改

import java.util.Scanner;

public class Demo {
static Scanner input;//扫描器
static int money = 5000;//初始金币
static int lowCost = 50;//每次最小的金币
static int highCost = 1000;//每次最大的金币

public static void main(String[] args) {
input = new Scanner(System.in);
int cost;
int num;
while (money >= 50) {//每次不能小于50
cost = getCost();//注
num = getNum() + getNum() + getNum();//3个色子
boolean flag = xz();//大还是小
yz(num, flag, cost);//验证结果,并奖励或者惩罚
}
System.out.println("money小于50结束");
}

private static int getNum() {// 随即1~6之间的数
return (int) (Math.random() * 6) + 1;
}

private static void yz(int num, boolean flag, int cost) {// 验证结果,并奖励或者惩罚
System.out.println("结果是:" + num + (num >= 9 ? " 大" : " 小"));
if ((num >= 9 && flag) || (num < 9 && !flag)) {
money = money + cost * 2;
System.out.println("赢了" + cost * 2);
} else {
System.out.println("输了" + cost);
}
System.out.println("money=" + money);
}

private static int getCost() {// 输入金币
int cost = 0;
while (true) {
System.out.println("请输入金币:");
try {
cost = Integer.parseInt(input.nextLine());
} catch (Exception e) {
System.out.println("请确保输入的是数字!");
continue;
}
if (!(cost % lowCost == 0 && cost >= lowCost && cost <= highCost)) { 
System.out.println("请输入的数字是50的倍数,且大于等于50,小于等于1000~!!");
continue;
} else {
money -= cost;
break;
}
}
return cost;
}

private static boolean xz() {// 选择 大 还是 小
boolean flag;
while (true) {
System.out.println("请输入大小:");
String temp = input.nextLine().trim();
if (temp.equals("大") || temp.equals("小")) {
flag = temp.equals("大") ? true : false; // 大-->true, 小-->flase
break;
} else {
System.out.println("请输入大或者小");
continue;
}
}
return flag;
}
}

测试

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式