【发布时间】:2015-10-07 14:20:57
【问题描述】:
我在尝试编译控制台游戏时遇到问题,控制台向我显示
线程“main”java.lang.Error 中的异常:未解决的编译问题:在 Pytania.main(Pytania.java:6)
第 6 行是 public static void main(String[] args),遗憾的是我没有看到失败 :(
我用的是 Eclipse,谢谢你的回答 :)
import java.util.Scanner;
public class Pytania{
public static void main(String[] args){
String Elf = ("Elf");
String Kot = ("Kot");
String Wojownik = ("Wojownik");
String Lucznik = ("Lucznik");
Scanner pisz = new Scanner(System.in);
System.out.println("---------------------------------");
System.out.println("----------RPG--TALES-------------");
System.out.println("------------Part 1---------------");
System.out.println("---------------------------------");
System.out.println(" ");
System.out.println("Pamietaj, pisz poprawnie, inaczej mutanty wysadza gre! :D ");
System.out.println(" ");
System.out.println("Podaj nazwe uzytkownika");
String nazwa = pisz.nextLine();
System.out.println("Witaj " + nazwa + " w nowym symulatorze RPG, nastepnym krokiem bedzie wybranie klasy, wybierz klase z dostepnych ponizej");
System.out.println("Elf, Kot, Wojownik, Lucznik");
String postac = pisz.nextLine();
System.out.println("Gratulacje " + nazwa + ", Wybrales klase " + postac);
if (postac=="Elf"){
return postac = Elf;
}
}
这对我有很大帮助,谢谢! :)
【问题讨论】:
-
你觉得
return postac = Elf;应该怎么做(记住你还在public static void main(String[] args)方法中) -
关于您的下一个问题,为什么
if (postac=="Elf")不起作用:How do I compare strings in Java? -
当您尝试编译 某些东西时,您不会遇到异常——您会遇到编译错误。当您尝试运行代码时会发生异常。在编译之前不要运行它 - 虽然存在编译错误,但它们应该比您提供的更具描述性......
-
Postac 使用我的语言“名称”,所以我想如果用户将从列表 System.out.println("Elf, Kot, Wojownik, Lucznik") 中编写可用的类;以 Elf 为例,它将返回他的类 //return postac = Elf;然后当我写 postac 时,它会在 println 的最后一行自动将文本更改为“Elf”,对不起我的英语不好:/
-
实际上“Postac”看起来更像“Profession”(zajęcie/klasa),所以你应该这样命名它:)无论如何
return不是你想要使用的动作。您可能应该创建单独的类,例如MyCharacter,在其中您将拥有种族、姓名、HP 和其他一些统计信息的字段(您还需要添加 getter 和 setter)。然后你可以创建像MyCharacter mc = new MyCharacter();这样的类的实例,并使用像mc.setProfession(profesja)这样的东西来存储来自用户的数据。当您需要它时,请使用mc.getProfession()。
标签: java compiler-errors compiler-warnings