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中的一样,但当我复制粘贴它时就不一样了。我试着用另一个括号来结束它,但问题是一样的