老师帮帮我,想了两天了。课程也没看就为了这个题

老师帮帮我,想了两天了。课程也没看就为了这个题

老师这道题,我有3个需求,但是有一个实现不了。请老师帮我看一下,并指导我怎么改。


代码需求如下:

①让客户输入充值金额

②当充值金额大于等于100,提醒客户获得3次抽奖机会,输入1-100数字

③当客户输入的不是0.1.3.时,会进入循环语句,三次不中,会输出抽奖次数用完。


我的难点:第三个需求实现了前一部分,后一部分:”输出抽奖次数用完“没有实现。老师帮我一把。告诉我问题所在,整个个代码应该怎么改?


我的代码如下:

public static void main(String[] args) {

// 抽奖活动;0未中奖,1一等奖,3三等奖

System.out.println("新年大回馈,充值满100即可获得3次抽奖机会,请输入充值金额");

Scanner s = new Scanner(System.in);

int n = s.nextInt();// n存储充值金额

if (n >= 100) {

int number = (int) (Math.random() * 100 + 1);

int guess;

System.out.println("恭喜您获得3次抽机会,请输入1-100任意数字哦");

// Scanner sc=new Scanner(System.in);

// guess=sc.nextInt();//guess存放输入数字

int count = 3;// count存放抽奖次数

while (count > 0) {

for (count = 3; count > 0; count--) {

Scanner sc = new Scanner(System.in);

guess = sc.nextInt();

System.out.println("还有" + (count-1) + "次机会");

if (count <1) {

System.out.println("抱歉您的次数已用完");break;

}

if (guess == 0) {

System.out.println("很遗憾未中奖,下次再来吧");

break;

}

if (guess == 1) {

System.out.println("恭喜您抽中一等奖---键盘一台");

break;

}

if (guess == 3) {

System.out.println("恭喜您抽中三等奖---纪念品一枚");

break;

}


}

}

System.out.println("很遗憾未中奖");

}

}

}


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,根据同学的需求,老师对同学的代码做了简单调整可以使得代码正常运行,调整的位置如下图所示:

1.由于break会直接结束当前循环,所以for循环的count--语句无法等到执行,而将break替换为continue之后,可以正确的执行到for循环的count--语句,这样次数就可以正确减少了;

2.由于当count值变化为0的时候,for循环判断count > 0时为false,所以if(count < 1)的语句永远都没有机会得到执行,所以将次数用尽的代码移动到循环结束会更好。

https://img1.sycdn.imooc.com//climg/616f7f9209b862c209520798.jpg

同学的代码还可以进行优化,优化后的代码如下图所示:

https://img1.sycdn.imooc.com//climg/616f7fa3090f3ec208010614.jpg

1.使用单层循环即可完成对抽奖次数的控制,所以去掉了外层的while循环;

2.将Scanner的创建放在循坏外,减少Scanner的创建次数;

3.使用switch...case结构替换if结构,可以使代码的可维护性更强。


看到同学对抽奖的系统很有兴趣,老师也根据同学的想法做了一下改良,使得这个游戏更加有趣,代码和注释如下所示:

https://img1.sycdn.imooc.com//climg/616f7fc0097a768c10000864.jpg

祝学习愉快~

  • UUU加油 提问者 #1

    非常感谢老师,又回来看了一遍前面课程,再回来看老师的讲解,让我对语法结构的理解又多了一些。感谢

    2021-10-29 16:52:27
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师