// 当我尝试编译它时,它不断弹出这个错误,说它在解析时到达文件末尾,让我相信我的“{}”括号有问题。请帮忙!!!
// 这是代码:
import java.util.*;
class GameOfNim
{ public static void main(String [] args)
{ Scanner in = new Scanner (System.in);
int marbles, player, difficulty, pick;
marbles = (int)(Math.random()*90+10);
player = (int)(Math.random()+0.5);
difficulty = (int)(Math.random()+0.5);
if(difficulty == 0)
System.out.println("The Computer is now in Beast Mode!");
else if(difficulty == 1)
System.out.println("The Computer is now in easy mode.");
System.out.println("The pile of marbles has: " + marbles + "total marbles. Game On!");
while(marbles>0)
{ if(player==0)//person
{System.out.print("Pick some marbles");
pick = in.nextInt();}
if (pick >= 1 && pick <= marbles/2){
marbles = marbles - pick;
System.out.println(marbles+"left");}
else if(pick < 1 || pick > marbles/2 && pile > 1){
System.out.println("Error: Illegal Move.");
player = 0;
continue;}
else {
marbles = marbles - pick;
System.out.println(marbles + "left.");
}}
if(player == 1 && difficulty ==1)
{
System.out.println("Computer's turn to pick");
pick = (int)(Math.random()*marbles/2+1);
marbles = marbles - pick;
System.out.println("computer picks: " + pick + "marbles." + "There are: " + marbles + " marbles left.");}
else if(player == 1 && difficulty == 0)
{
System.out.println("Computer's turn to pick");
if(marbles > 63)
{pick = marbles - 63;
marbles = marbles - pick;}
else if(pile > 31)
{pick = marbles - 32;
marbles = marbles - pick;}
else if(pile > 15)
{pick = marbles - 15;
marbles = marbles - pick;}
else if(pile > 7)
{pick = marbles - 7;
marbles = marbles - pick;}
else if(pile > 3)
{pick = marbles - 3;
marbles = marbles - pick;}
else{
pick = (int)(Math.random()*marbles/2+1);
marbles = marbles - pick;
System.out.println("Computer picks: " + pick + "marbles." + "There are: " + marbles + " marbles left.");
}
{if(player==0)
player=1;
else player=0;
}
{if(player==0)
System.out.println("Computer: 'I give up! You win!");
else
System.out.println("Computer: '...You are pathetic...'");
}}
//注意:通过分块调试代码。看来问题可能出在我的 While 循环中。但我真的不知道。
首先,您应该正确缩进代码。您应该阅读一些有关 Java 缩进约定的内容。这是正确缩进代码的示例:
class GameOfNim {
public static void main(String[] args) {
[...]
if (difficulty == 0) {
System.out.println("The Computer is now in Beast Mode!");
} else if (difficulty == 1) {
System.out.println("The Computer is now in easy mode.");
}
}
}
修复代码的缩进后,我很容易发现文件末尾缺少两个右括号,一个用于您的主要方法,一个用于您的类。
伙计。您确实应该从使用编码约定开始。子句应该是:
void function(){
}
或
void function()
{
}
同样适用于 if、while 循环和类。选择一个编码标准并坚持下去:) 至于你的问题,你遗漏了用于结束课程的右括号“}”。
在某个地方缺少两个“}”字符,将代码复制/粘贴到 IDE 后,我注意到有人抱怨事情没有排列好。您错过了两个结束括号。
此外,经过进一步检查,看起来“pile”从未被声明或初始化为任何值。
private String name;
private String email;
private int number;
public String getname(){
return name;
}
public void setname(String name){
this.name= name;
}
public String getemail(){
return email;
}
public void setemail(String name){
this.email= email;
}
public String getnumber()}
return number;
}
public staticvoid setnumber(String number){
this.number= number;
}
public static void main(String[] args) {
NameEmailnumber person= new NameEmailnumber();
person.setname("Tumelo Monese");
person.setemail("[email protected]");
person.setnumber("0676613198");
System.out.println(" I am "+ person.getname());
System.out.println( "my email is "+ person.getemail())
System.out.println( " my phone number is "+person.getnumber())
}
}
你应该尝试正确缩进。 你可以尝试改变
{if(player==0)
player=1;
else player=0;
}
{if(player==0)
System.out.println("Computer: 'I give up! You win!");
else
System.out.println("Computer: '...You are pathetic...'");
}} `enter code here`
与:
if(player==0)
player=1;
else player=0;
if(player==0)
System.out.println("Computer: 'I give up! You win!");
else
System.out.println("Computer: '...You are pathetic...'");
}
}