我的代码有什么问题吗?

问题描述 投票:0回答:5

// 当我尝试编译它时,它不断弹出这个错误,说它在解析时到达文件末尾,让我相信我的“{}”括号有问题。请帮忙!!!

// 这是代码:

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 while-loop
5个回答
3
投票

首先,您应该正确缩进代码。您应该阅读一些有关 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.");
        }
    }
}

修复代码的缩进后,我很容易发现文件末尾缺少两个右括号,一个用于您的主要方法,一个用于您的类。


2
投票

伙计。您确实应该从使用编码约定开始。子句应该是:

void function(){
}

void function()
{
}

同样适用于 if、while 循环和类。选择一个编码标准并坚持下去:) 至于你的问题,你遗漏了用于结束课程的右括号“}”。


0
投票

在某个地方缺少两个“}”字符,将代码复制/粘贴到 IDE 后,我注意到有人抱怨事情没有排列好。您错过了两个结束括号。

此外,经过进一步检查,看起来“pile”从未被声明或初始化为任何值。


0
投票
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())

}

}


-1
投票

你应该尝试正确缩进。 你可以尝试改变

  {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...'");
    }
}  
© www.soinside.com 2019 - 2024. All rights reserved.