找不到input.nextInt()的符号

时间:2016-06-24 03:42:22

标签: java

我在制作一个石头剪刀游戏时遇到了问题,由于某种原因,当我使用<generatePublisherEvidence enabled = "False" />

时代码不接受它
$aspnetConfig= "C:\Users\Desktop\Aspnet.config"
$doc = (Get-Content $aspnetConfig) -As [Xml]
$newXmlElement = $doc.CreateElement('generatePublisherEvidence')
$newXMlElement.SetAttribute('enabled','False')
$doc.configuration.runtime.InsertBefore($newXMlElement, $doc.configuration.runtime.legacyUnhandledExceptionPolicy)
$doc.Save($aspnetConfig)

这是完整的错误代码

input.nextInt()

1 个答案:

答案 0 :(得分:1)

好的,所以Java不知道input在这里的意思,因为你还没有宣布它是什么。据他所知,input只是一堆乱七八糟的字母。您必须创建一个对象,可以从键盘上读取输入。你可以这样做:

input = new Scanner(System.in);

就代码而言,让我给你一些建议:

// Rock Paper Scissors Game

int Rock = -1;
int Paper = 0;
int Scissors = 1;

对于你的Rock,Paper和Scissors变量,让它们保持正面更有意义 - 而且在java中,惯例是将变量命名为&#34; camelCase&#34;,其中你的第一个单词以小写字母,后面的每个单词都以大写字母开头。然而,这些是 CONSTANTS ,这意味着它们永远不会永远改变,所以我们用大写字母写它们。所以我们将其更改为:

int ROCK = 1; 
int PAPER = 2;
int SCISSORS = 3;

我不确定您在此处使用MaxMin做了什么,因为它们未在您的代码中的任何其他位置引用。如果是这样的话,他们就不会改变.. 永远 ...你可以使用整数,因为它可以硬编码进入你的剧本

// int Max = 1;   GET RID OF IT
// int Min = -1;  GET RID OF IT

让我们将您的计算机选择重命名为更多描述它的变量。毕竟computer不是很具描述性。

此外,在一个范围内获取随机数的格式是正确的,但是不要使用max和min变量,因为数字永远不会改变。还有,花括号是什么?它们不是必需的,因为它不是块。

int computer_choice = ((int)(Math.random() * ((3 - 1) + 1))) + 1;

让我们稍微清理一下select语句 - 因为它看起来更好看。请记住,\n是一个名为newline的特殊字符,它会在每行之间放置回车符。

System.out.println("Input 1 for Rock. \n 2. for Paper. \n 3 for Scissors.");

现在我们有了你的问题的答案:扫描仪的声明。

input = new Scanner(System.in);

然后我们计算了玩家的行动。

int player_choice = input.nextInt();

不需要返回玩家,因为那不是我们想要的。

// return player; GET RID OF IT

最后,我们需要处理结果。再次,你对牙箍有点疯狂。如果if语句只有一行,则无需使用大括号。此外,你不要在之后采用开放式支撑的任何东西之后加上分号,包括循环和条件,如if语句

if(player_choice == computer) 
    System.out.println("Tie");

您还必须处理除了关系之外的情况,您可以使用else if语句使用逻辑AND&&)来组合条件

else if(player_choice == 1 && computer_choice == 2)
    System.out.println("Computer wins!")
}
else if(player_choice == 2 && computer_choice == 1)
    System.out.println("You win!")
}
else if(player_choice == 3 && computer_choice == 2)
    System.out.println("You win!")
}
else if(player_choice == 2 && computer_choice == 3)
    System.out.println("Computer wins!")
}

你完成了!但是我不确定你是否理解java文件的格式是如何工作的,所以我会为你推出完整的文件

public class RockPaperScissorsGame {



private int ROCK = 1; 
private int PAPER = 2;
private int SCISSORS = 3;

public static void playGame(){
    int computer_choice = ((int)(Math.random() * ((3 - 1) + 1))) + 1;
    System.out.println("Input 1 for Rock. \n 2. for Paper. \n 3 for Scissors.");

    input = new Scanner(System.in);
    int player_choice = input.nextInt();

    if(player_choice == computer) 
        System.out.println("Tie");
    else if(player_choice == 1 && computer_choice == 2)
        System.out.println("Computer wins!"); 
    else if(player_choice == 2 && computer_choice == 1)
        System.out.println("You win!");  
    else if(player_choice == 3 && computer_choice == 2)
        System.out.println("You win!");   
    else if(player_choice == 2 && computer_choice == 3)
        System.out.println("Computer wins!");
}

public static void main(String[] args){
    playGame();
}

}