优化商品价格猜猜猜java程序

        1、用while ,for , switch 三种方法分别将最初代码进行循环的优化,以及把价格整数优化为价格两位小数

        2、用格式化的方法将把Math.random()*1000+1000变成临时的字符串(调用String.format),字符串转化成%f,保留两位小数(%.2f)

        3、将tmp_price转化成float类型,不同类型之间转换调用类型的大写.parse类型(Float.parseFloat)

        4、循环的思路:确定好循环的条件,确定循环的次数用for,不确定循环的次数用while

循环嵌套:While循环里套用另个一个while,或者是for循环中套用另外一个for

注意:

1、不用round,因为round计算后为整数

2、小数一定加f,否则报错

  • while方法

注意:while里面匹配小数,不匹配取非(!)

代码为:  !tmp_user_price.matches()即为输入价格不可取括号里面的类型

以下为整段代码:

String tmp_user_price=scanner.next();

while(!tmp_user_price.matches("^[0-9]+(.[0-9]{1,2})?$")){

    System.out.println("你输入的价格有问题,请检查输入价格:");

    tmp_user_price=scanner.next();

}
  • for的写法

把while在class字节文件中都转化成for

以下为整段代码:

for(tmp_user_price = scanner.next(); 
!tmp_user_price.matches("^[0-9]+(.[0-9]{1,2})?$"); 
tmp_user_price = scanner.next()) {

    System.out.println("你输入的价格有问题,请检查输入价格:");

}

用switch循环结构:

  switch(user_choice){

            case "1":

String tmp_price=String.format("%.2f",Math.random()*1000+1000);

                

                plan_price=Float.parseFloat(tmp_price);

                 break;

            case "2":

                //先定义一个临时变量,格式化字符串两位小数

                tmp_price=String.format("%.2f",Math.random()*99+1);

                                plan_price=Float.parseFloat(tmp_price);

                break;

            default:

                tmp_price=String.format("%.2f",Math.random()*10000);

                plan_price=Float.parseFloat(tmp_price);

        }

字节文件添加一个byte的中间变量

byte var6 = -1;

switch(user_choice.hashCode()) {

case 49:

    if (user_choice.equals("1")) {

        var6 = 0;

    }

    break;

case 50:

    if (user_choice.equals("2")) {

        var6 = 1;

    }

}

给这个中间变量0和-1,然后根据中间变量做代码中的逻辑

switch(var6) {

case 0:

    tmp_price = String.format("%.2f", Math.random() * 1000.0D + 1000.0D);

    plan_price = Float.parseFloat(tmp_price);

    break;

case 1:

    tmp_price = String.format("%.2f", Math.random() * 99.0D + 1.0D);

    plan_price = Float.parseFloat(tmp_price);

    break;

default:

    tmp_price = String.format("%.2f", Math.random() * 10000.0D);

    plan_price = Float.parseFloat(tmp_price);

}

  

感兴趣的小伙伴可在码云Gitee 自取优化后的源代码:Java小游戏: 幸运价格猜猜猜 代码 · zyt/麦当劳投资人 - 码云 - 开源中国 (gitee.com)icon-default.png?t=N7T8https://gitee.com/zytscode/mcdonalds-investors/blob/master/Java%E5%B0%8F%E6%B8%B8%E6%88%8F%EF%BC%9A%20%E5%B9%B8%E8%BF%90%E4%BB%B7%E6%A0%BC%E7%8C%9C%E7%8C%9C%E7%8C%9C%20%E4%BB%A3%E7%A0%81

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值