Java 为什么这些东西会出错?
我对Java非常陌生,我一直在使用它作为一种模板。我不知道我做错了什么,错误信息对我很有帮助 它说我需要至少10个声誉来发布图片,所以我必须将其复制粘贴到这里,并告诉您哪些图片带有下划线以及错误消息:Java 为什么这些东西会出错?,java,Java,我对Java非常陌生,我一直在使用它作为一种模板。我不知道我做错了什么,错误信息对我很有帮助 它说我需要至少10个声誉来发布图片,所以我必须将其复制粘贴到这里,并告诉您哪些图片带有下划线以及错误消息: import java.util.Random; **Error: the "." after util.** import java.util.Scanner; **Error: whole line underlined saying "Syntax error on token(s) m
import java.util.Random; **Error: the "." after util.**
import java.util.Scanner; **Error: whole line underlined saying "Syntax error on token(s) misplaced construct(s)**
public class game {
private static final String[] enemies = null;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Random rand = new Random();
String[] enemies = { "troll","rat","imp","goblin" };
int maxEnemyHealth = 80;
int enemyAttackDamage = 20;
int health = 100;
int playerAttackDamage = 30;
int numHealthPots = 3;
// int numStamimaPots = 3 (add stamina potions later on)
int healthPotionHeal = 20;
int healthPotionDropChance = 40; // 40%
boolean running = true;
System.out.println("Welcome, Dungeon Explorer!");
GAME:
while(running) {
System.out.println("-----------------------------------------------------");
}
}
private Scanner rand;
private int maxEnemyHealth;
int enemyHealth = rand.nextInt(maxEnemyHealth);
String enemy = enemies[rand.nextInt(enemies.length)];
System.out.println("\t#" + enemy + " attacked! #\n"); **Error: Everything after System.out is underlined red with the message: Syntax error on tokens, AnnotationName expected instead.**
while (enemyHealth > 0); { **Error: while, and the paranthesis after 0 is underlined red with the AnnotatioName message for while and Syntax error, insert ) to complete MethodDelcaration for the paranthesis**
System.out.println("HP:" + health);
System.out.println("\t" + enemy + "'s +" " + HP: + " " + enemyHealth);
System.out.println("\n\t What do you choose to do?" );
System.out.println("\t Attack ");
System.out.println("\t Health Potion");
System.out.println("\t Run!");
String input = in.nextLine();
帮助第一个错误是由缺少的包声明创建的。要解决此问题,您可以将类移动到默认包(不推荐),也可以通过添加包声明
package x.y.z;
在类的顶部,而x.y.z是您的包名
第二个错误是由while语句后的第二个右大括号引起的
while(running) {
System.out.println("-----------------------------------------------------");
}
} // This brace shall not be here
编译器将此大括号解释为关闭主方法,并且不再接受此大括号之后的方法
但是,还有一些其他错误:
-while语句后的分号
-局部变量声明之前的私有修饰符
package game;
或者,将其移动到默认包}
关闭您的类。最后是一个很好的起点while(enemyHealth>0);{
通过删除;
并添加}
来关闭循环main
方法中System.out.println(“\t#“+敌人+”被攻击!#\n”)代码>也输入到main
方法中
System.out.println(“\t”+敌方+”+HP:+“”+enemyHealth);
这将起作用:
System.out.println("\t" + enemy + "'s HP:" + enemyHealth);
敌军
和enemyHealth
也需要移动到main
方法中。您的IDE可能建议将它们设置为静态。但是,由于Random rand=new Random();
是在main方法中实例化的,因此将它们设置为静态没有意义现在你的程序将运行。至于它是否真的做了它应该做的,我不能回答,因为你没有告诉我们
package game;
import java.util.Random;
import java.util.Scanner;
public class Game {
private static final String[] enemies = null;
private Scanner rand;
private int maxEnemyHealth;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Random rand = new Random();
String[] enemies = { "troll", "rat", "imp", "goblin" };
int maxEnemyHealth = 80;
int enemyAttackDamage = 20;
int health = 100;
int playerAttackDamage = 30;
int numHealthPots = 3;
// int numStamimaPots = 3 (add stamina potions later on)
int healthPotionHeal = 20;
int healthPotionDropChance = 40; // 40%
boolean running = true;
System.out.println("Welcome, Dungeon Explorer!");
GAME: while (running) {
System.out
.println("-----------------------------------------------------");
}
int enemyHealth = rand.nextInt(maxEnemyHealth);
String enemy = enemies[rand.nextInt(enemies.length)];
while (enemyHealth > 0) {
System.out.println("HP:" + health);
System.out.println("\t" + enemy + "'s HP:" + enemyHealth);
System.out.println("\n\t What do you choose to do?");
System.out.println("\t Attack ");
System.out.println("\t Health Potion");
System.out.println("\t Run!");
String input = in.nextLine();
}
System.out.println("\t#" + enemy + " attacked! #\n");
}
}
while(enemyHealth>0);
删除分号,因为这将在{}之前结束循环
Come我认为你的编程生涯开始得不对。不要在互联网上寻找要复制的模板。找一本好书,从基础开始学习。从10行小练习开始,然后从那里开始。现在我甚至不确定你是否在使用真正的Java编译器。也许你正在使用IDEr另一种语言。在游戏下:label没有任何方法中的代码(如果我没有迷失在括号中:P)添加到@realdupoint,我认为您应该更简单地开始了解该语言以及错误告诉您的内容。我们可以为您调试该语言,但接下来呢?您将在2分钟内带着相同的问题回来。10名自称为“phpacademy”的人拍摄的关于Java的视频“这不是很有希望。他说这是你使用物体的第一课。也不是很有希望。这将是一个更好的开始,同样,我更喜欢一本好书。大括号关闭main
方法,而不是类。虽然不推荐使用默认包,但使用默认包是合法的,因此,错误不可能是因为缺少包声明。我认为他忘记了包语句,而在默认包中没有类(在复制粘贴代码时发生)