Java 未找到适合Random(int,int)的构造函数
我正在unix中做一个基本的猜测游戏,我从1到10的一系列可能的数字中随机选择一个数字,用户在输赢之前有三次机会输入猜测。我对使用unix比较陌生,更不用说vim了,所以如果我能得到一些帮助,我将不胜感激。 我不断地遇到这些错误:没有为Randomint、int找到合适的构造函数,还有错误:无法为guess、secGuess和thirgess找到符号,即使我已经实例化了它们。我不知道我做错了什么。以下是我的java代码:Java 未找到适合Random(int,int)的构造函数,java,Java,我正在unix中做一个基本的猜测游戏,我从1到10的一系列可能的数字中随机选择一个数字,用户在输赢之前有三次机会输入猜测。我对使用unix比较陌生,更不用说vim了,所以如果我能得到一些帮助,我将不胜感激。 我不断地遇到这些错误:没有为Randomint、int找到合适的构造函数,还有错误:无法为guess、secGuess和thirgess找到符号,即使我已经实例化了它们。我不知道我做错了什么。以下是我的java代码: import java.util.Random; import java.
import java.util.Random;
import java.util.Scanner;
class Guess {
public static void main (String[] args) {
Random num = new Random(1,10);
int value = num.nextInt(10);
Scanner sc = new Scanner(System.in);
int guess;
int secGuess;
int thirGuess;
System.out.println("guess a number between 1 and 10");
int tryCount = 0;
guess = input.nextInt();
if(guess == value) {
System.out.println("Yay! You win!");
noLoop();
}
if(guess > value) {
System.out.println("Nope! Your number is too high, son!");
tryCount++;
}
if(guess < value) {
System.out.println("Nope! That number is too low!");
tryCount++;
}
secGuess = input.nextInt();
if(secGuess == value) {
System.out.println("Yay! You win!");
}
if(secGuess > value) {
System.out.println("Nope! Your number is too high, son!");
tryCount++;
}
if(secGuess < value) {
System.out.println("Nope! That number is too low!");
tryCount++;
}
thirGuess = input.nextInt();
if(thirGuess == value) {
System.out.println("Yay! You win!");
noLoop();
}
if(thirGuess > value) {
System.out.println("Nope! Your number is too high, son!");
tryCount++;
}
if(thirGuess < value) {
System.out.println("Nope! That number is too low!");
tryCount++;
}
if(tryCount>3) {
System.out.println("You've exceeded the number of tries. Sorry, but you lose!");
}
}
}
不存在具有两个参数的随机构造函数。替换
Random num = new Random(1,10);
与
guess=input.nextInt;中的下一个错误;。作用域中没有名称输入。我想你指的是sc。有三个这样的错误
最后一个noLoop;。修复它很棘手,因为我不知道你的意思。但是你可以试着猜测你想结束你的计划。有双向返回和系统。exit0您也可以尝试这样做
Random num = new Random();
int value = num.nextInt() % 10;
此外,您可以将测试循环3次,而不是编写3次。像这样-
while(tryCount<3){
guess = input.nextInt() % 10;;
if(guess == value) {
System.out.println("Yay! You win!");
break;
}
if(guess > value) {
System.out.println("Nope! Your number is too high, son!");
tryCount++;
}
if(guess < value) {
System.out.println("Nope! That number is too low!");
tryCount++;
}
}
你有没有看过随机的文档?你能找到一个有两个int参数的构造函数吗?您希望它做什么?Unix和Vim与此完全无关。在修复随机错误后,我得到的唯一错误与input和noLoop有关-您尚未声明。我在Unix中输入此代码,同时使用Vim。这怎么跟它一点关系都没有?我在讲背景。我知道我为random做了什么错事——谢谢你。我能了解一下围绕input或noloop的错误吗?谢谢。@aniben可以提供上下文,但是上下文应该与问题相关。无论您使用的是哪种编辑器,也不管您当前使用的是哪种操作系统,因为这个问题都会发生在每个操作系统上。如果您试图执行特定于操作系统的操作,例如从特定路径读取文件,那么操作系统可能是相关的。在您的情况下,java是您唯一需要的标记:。非常感谢。早些时候,我说过用户输入范围应该在1-10之间,但我想我没有指定1是最小值。。。我想这就是为什么我把它放在随机的。我应该怎么做才能确保1是最小值?如果将参数传递给nextInt,它将返回0和参数之间的值。例如,nextInt3可以返回0、1、2。所以,如果你写下一个10+1的结果将完全是你想要的。我不明白你为什么需要tryCount。只需打印消息,结尾不带if。是的,我确实这么做了。我只是把事情复杂化了。
while(tryCount<3){
guess = input.nextInt() % 10;;
if(guess == value) {
System.out.println("Yay! You win!");
break;
}
if(guess > value) {
System.out.println("Nope! Your number is too high, son!");
tryCount++;
}
if(guess < value) {
System.out.println("Nope! That number is too low!");
tryCount++;
}
}