gpt4 book ai didi

java - 减少随机数...逻辑错误

转载 作者:行者123 更新时间:2023-12-04 20:48:42 24 4
gpt4 key购买 nike

基本上,我试图用这个程序做的是让系统生成一个随机数,然后将该数字分配给另一个变量。如果数字大于 20,则 while 循环将开始,直到变量的值(由随机数确定)小于 20,然后程序结束。问题是 while 循环似乎永远持续下去 :( 。请帮忙

这是代码:

package innocence;
import java.util.Scanner;

class GS1{

public static void main(String[]args){


int ranNum = (int)( Math.random()*25);
int num=ranNum;
System.out.println(num);
while(num > 20){

System.out.println("Not acceptable");

num= num --;
}
}
}

最佳答案

问题是您使用了 postfix decrement operator :

num = num--;

我链接的 JLS 指定

The result of the postfix decrement expression is not a variable, but a value.

该调用只需重新分配 num 当前值,因为分配是在减量之前完成的,然后执行减量,这会导致一个从未分配过的值,因为您的变量已经分配了。

您可以通过在循环中添加始终打印相同值的打印语句来确认这一点。

System.out.println(num);

每次你重新迭代循环,num 仍然有它以前的值。

您可以使用 prefix decrement operator 来解决这个问题:

num = --num;

但是你应该简单地使用:

num--;

这样更简单。

关于java - 减少随机数...逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31150645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com