Java 从小程序创建类
我做了一个选择题小程序,如图所示Java 从小程序创建类,java,arrays,class,syntax-error,Java,Arrays,Class,Syntax Error,我做了一个选择题小程序,如图所示 import java.util.Arrays; import java.util.Scanner; public class logic { public static void main(String[] args) { String question = "Welche Fabe hat der Frosch?"; //Your Question here //Possible Answers St
import java.util.Arrays;
import java.util.Scanner;
public class logic {
public static void main(String[] args) {
String question = "Welche Fabe hat der Frosch?"; //Your Question here
//Possible Answers
String a = "Gelb";
String b = "Rot";
String c = "Grün";
String correct = "c"; //Right Answer
String [] arr = new String[5];
arr[0] = question;
arr[1] = a;
arr[2] = b;
arr[3] = c;
arr[4] = correct;
System.out.println(arr[0] + "\n");
System.out.println("Answer a: " + arr[1]);
System.out.println("Answer b: " + arr[2]);
System.out.println("Answer c: " + arr[3] + "\n");
int i = 0;
while (i != 1) {
Scanner userin = new Scanner(System.in);
System.out.println("Type a,b,c for correct answer.\n");
String selected = userin.next();
if (selected.equals(correct)) {
i = 1;
System.out.println("\nCorrect!");
}else {
System.out.println("Try again");
}
}
}
}
我想我可以基于此创建一个类。这就是问题的开始
这就是我目前得到的
import java.util.Scanner;
public class MultipleChoice {
private String question, a, b, c, correct;
public void setQuestion(String question) {
this.question = question;
}
public void setA(String a) {
this.a = a;
}
public void setB (String b) {
this.b = b;
}
public void setC (String c) {
this.c = c;
}
public void setCorrect (String correct) {
this.correct = correct;
}
String[] arr = new String[5];
arr[0] = question;
arr[1] = a;
arr[2] = b;
arr[3] = c;
arr[4] = correct;
System.out.println(arr[0] + "\n");
System.out.println("Answer a: " + arr[1]);
System.out.println("Answer b: " + arr[2]);
System.out.println("Answer c: " + arr[3] + "\n");
int i = 0;
while (i != 1) {
Scanner userin = new Scanner(System.in);
System.out.println("Type a,b,c for correct answer.\n");
String selected = userin.next();
if (selected.equals(correct)) {
i = 1;
System.out.println("\nCorrect!");
}else {
System.out.println("Try again");
}
}
}
}
当我尝试创建数组时,我得到错误“Syntax error on token”;“,{此标记后应为”
我对Java比较陌生
提前感谢问题在于类的主体中有可执行语句;这些可执行语句应该只包含在方法主体中。请参阅
例如,对System.out.println的调用需要位于此类上可在其他地方调用的方法内部。类中的以下代码段位于任何方法或构造函数外部:
String[] arr = new String[5];
arr[0] = question;
arr[1] = a;
arr[2] = b;
arr[3] = c;
arr[4] = correct;
System.out.println(arr[0] + "\n");
System.out.println("Answer a: " + arr[1]);
System.out.println("Answer b: " + arr[2]);
System.out.println("Answer c: " + arr[3] + "\n");
int i = 0;
while (i != 1) {
Scanner userin = new Scanner(System.in);
System.out.println("Type a,b,c for correct answer.\n");
String selected = userin.next();
if (selected.equals(correct)) {
i = 1;
System.out.println("\nCorrect!");
}else {
System.out.println("Try again");
}
}
这会导致出现错误,因为每个语句都必须包含在Java中的方法或构造函数中
让我们尝试将此代码放在一个方法中:
public void ask() {
String[] arr = new String[5];
arr[0] = question;
arr[1] = a;
arr[2] = b;
arr[3] = c;
arr[4] = correct;
System.out.println(arr[0] + "\n");
System.out.println("Answer a: " + arr[1]);
System.out.println("Answer b: " + arr[2]);
System.out.println("Answer c: " + arr[3] + "\n");
int i = 0;
while (i != 1) {
Scanner userin = new Scanner(System.in);
System.out.println("Type a,b,c for correct answer.\n");
String selected = userin.next();
if (selected.equals(correct)) {
i = 1;
System.out.println("\nCorrect!");
}else {
System.out.println("Try again");
}
}
}
现在,无论何时调用ask
,代码都将被执行
以下是如何在main
方法中使用multipleechoice
类:
MultipleChoice mc = new MultipleChoice("How many months are there in a year?");
mc.setA("11");
mc.setB("12");
mc.setC("13");
mc.setCorrect("b");
mc.ask();
你能删除所有的代码吗,除了错误所在的代码(可能两边都有几行)?请参阅:另外,请格式化您的代码。这可能足以向您显示答案。代码格式化。错误非常简单。一半代码在函数之外。您应该格式化代码,它将帮助您找到错误提示:
arr
可以声明为String[]arr={question,a,b,c,correct}
。但是看起来你应该定义一个问题
类,因为问题、可能的答案和实际答案在语义上是不同的,因此不应该只是相互插入。(或者直接使用变量,不需要数组或类)非常感谢你的确切回答。我在这里学到了一些东西:)以后我会注意发布干净的代码。@ SOM3K如果你认为我的答案回答你的问题,请考虑通过点击那个标记来接受它。