Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未找到适合Random(int,int)的构造函数_Java - Fatal编程技术网

Java 未找到适合Random(int,int)的构造函数

Java 未找到适合Random(int,int)的构造函数,java,Java,我正在unix中做一个基本的猜测游戏,我从1到10的一系列可能的数字中随机选择一个数字,用户在输赢之前有三次机会输入猜测。我对使用unix比较陌生,更不用说vim了,所以如果我能得到一些帮助,我将不胜感激。 我不断地遇到这些错误:没有为Randomint、int找到合适的构造函数,还有错误:无法为guess、secGuess和thirgess找到符号,即使我已经实例化了它们。我不知道我做错了什么。以下是我的java代码: import java.util.Random; import java.

我正在unix中做一个基本的猜测游戏,我从1到10的一系列可能的数字中随机选择一个数字,用户在输赢之前有三次机会输入猜测。我对使用unix比较陌生,更不用说vim了,所以如果我能得到一些帮助,我将不胜感激。 我不断地遇到这些错误:没有为Randomint、int找到合适的构造函数,还有错误:无法为guess、secGuess和thirgess找到符号,即使我已经实例化了它们。我不知道我做错了什么。以下是我的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++;
        }
}