java如何只生成正数(参见下面我的意思)
所以我写了一个非常简单的程序,要求用户不断猜测数字,直到他们猜到正确的数字,它会告诉他们选择的数字是太低还是太高。我遇到的问题是,数字应该是随机生成的,从1到100,但java将其视为-100到100。不管怎样,我想知道如何只让它返回正数
以下是代码:
import java.util.Random;
import java.util.Scanner;
public class GameMain {
public static void main(String[] args) {
int guess = 101;
Random r = new Random();
int answer = r.nextInt()%101;
System.out.println("Whats the number?");
Scanner input = new Scanner(System.in);
while (guess!=answer) {
guess = input.nextInt();
if (guess > answer) {
System.out.println("Too high!");
}
else if (guess < answer){
System.out.println("Too low!");
}
else if (guess == answer){
System.out.println("Correct you win!");
}
}
}
}
# 1 楼答案
不是最好的解决方案,而是另一种可能的选择。。。当你对负面消息有疑问时。。。数学abs()总是有效的:D
# 2 楼答案
请参考此链接 http://www.javapractices.com/topic/TopicAction.do?Id=62
你可以参考这个程序,使用我想的,1作为开始,100作为结束,生成然后继续。。。 导入java。util。随机的
# 3 楼答案
Random类还有另一个
nextInt(...)
方法,该方法接受一个参数,并返回一个介于0和1之间的随机数减去传入的数。如果你通过100,你会得到一个0到99之间的伪随机数。所以只要对随机对象r调用r.nextInt(100) + 1
,就可以得到一个介于1和100之间的数字一般来说,如果你想要一个介于a和b之间的随机数,你可以使用
# 4 楼答案
使用
而不是