Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.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 我的代码有什么问题?_Java_While Loop - Fatal编程技术网

Java 我的代码有什么问题?

Java 我的代码有什么问题?,java,while-loop,Java,While Loop,//当我试图编译它时,它不断出现这个错误,说它在解析时到达了文件的末尾,这使我相信我的{}括号有问题。请帮忙 //代码如下: import java.util.*; class GameOfNim { public static void main(String [] args) { Scanner in = new Scanner (System.in); int marbles, player, difficulty, pick; marbles = (in

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

//代码如下:

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...'");
  }}  
import java.util.*;
GameOfNim类
{公共静态void main(字符串[]args)
{Scanner in=新的扫描仪(System.in);
智力弹珠,玩家,难度,选择;
弹珠=(int)(数学随机()*90+10);
player=(int)(Math.random()+0.5);
难度=(int)(Math.random()+0.5);
如果(难度==0)
System.out.println(“计算机现在处于Beast模式!”);
否则如果(难度==1)
System.out.println(“计算机现在处于简易模式”);
System.out.println(“这堆弹珠有:“+marbles+”总弹珠数。游戏开始!”);
而(弹珠>0)
{if(player==0)//个人
{System.out.print(“挑选一些弹珠”);
pick=in.nextInt();}
如果(拾取>=1&&pick大理石/2&&pile>1){
System.out.println(“错误:非法移动”);
玩家=0;
继续;}
否则{
弹珠=弹珠-拾取;
System.out.println(弹珠+左“);
}}
如果(玩家=1&&难度=1)
{
System.out.println(“轮到计算机挑选”);
拾取=(int)(Math.random()*marbles/2+1);
弹珠=弹珠-拾取;
println(“计算机拾取:“+拾取+”弹珠。“+”有:“+弹珠+”弹珠剩余”);}
否则如果(玩家==1&&难度==0)
{
System.out.println(“轮到计算机挑选”);
如果(弹珠>63)
{pick=大理石-63;
大理石=大理石-拾取;}
否则,如果(桩>31)
{pick=大理石-32;
大理石=大理石-拾取;}
否则,如果(桩>15)
{pick=大理石-15;
大理石=大理石-拾取;}
否则,如果(桩>7)
{pick=大理石-7;
大理石=大理石-拾取;}
否则,如果(桩>3)
{pick=大理石-3;
大理石=大理石-拾取;}
否则{
拾取=(int)(Math.random()*marbles/2+1);
弹珠=弹珠-拾取;
系统输出println(“计算机拾取:“+拾取+”弹珠。”+”有:“+弹珠+”弹珠剩余。”);
}
{如果(玩家==0)
玩家=1;
else-player=0;
}
{如果(玩家==0)
System.out.println(“计算机:我放弃!你赢了!”);
其他的
println(“计算机:“…你真可怜…”);
}}  

//注意:通过分块调试代码。似乎问题可能在我的While循环中。但我真的不知道。

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

void function(){
}

if、while循环和类也是如此。选择一个编码标准并坚持它:)
至于您的问题,您省略了结束类的结束括号“}”。

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

void function(){
}

if、while循环和类也是如此。选择一个编码标准并坚持它:)
至于您的问题,您省略了结束类的结束括号“}”。

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

  {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...'");
    }
}  

你应该试着适当缩进。 你可以试着改变

  {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...'");
    }
}  

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

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

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

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

在某些地方缺少两个“}”字符,在将代码复制/粘贴到IDE后,我注意到有人抱怨没有对齐。你错过了两个端括号


另外,经过进一步检查,“pile”似乎从未声明或初始化为任何值。

在将代码复制/粘贴到IDE后,您丢失了两个“}”字符。我注意到有人抱怨没有对齐。你错过了两个端括号


另外,在进一步检查后,“pile”似乎从未声明或初始化为任何值。

Crikey,让代码缩进properly@hd1我想说这是主要问题!通常,大多数IDE中都有一个工具可以为您格式化代码。这更好吗?pile声明在哪里?天哪,让你的代码缩进properly@hd1我想说这是主要问题!通常,大多数IDE中都有一个工具可以为您格式化代码。这更好吗?PILL声明在哪里?这没有正确缩进。这没有正确缩进。它在textpad中看起来像那样,但在我复制粘贴它时不是这样。我试着用另一个括号把它合上,但这个问题和textpad中的一样,但当我复制粘贴它时就不一样了。我试着用另一个括号来结束它,但问题是一样的