我需要获取条件来确定字母是否为x y z,但我无法理解其逻辑。
package guessword;
import java.util.*;
public class Guessword {
public static void main(String[] args) {
char s[] = {'a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
System.out.println("Guess The seven letter word\nPress Enter");
Scanner scanner = new Scanner(System.in);
scanner.nextLine();
System.out.print("");
for(int a=1;a<=7;a++){
System.out.println("Attempt "+a);
scanner = new Scanner(System.in);
String input = scanner.nextLine();
System.out.println(Arrays.toString(s));
if(a=='a') {
System.out.println("- - - - - a -");
}
else if(a=='g'){
System.out.println("- - - g - - -");
}
else if(a=='m') {
System.out.println("- - - - - m");
}
else if(a=='o') {
System.out.println("- - o - - -");
}
else if(a=='p'){
System.out.println("p - - - - -");
}
else if(a=='r'){
System.out.println("- r - - - -");
}
else {
System.out.println("Give it another go!");
}
}
}
}
这是输出的方式:
Guess The seven letter word
Press Enter
Attempt 1
a
[a, b, c, d, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z]
Give it another go!
Attempt 2
,并且在此[a, b, c, d, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z]
行上,我希望它不打印此行。但是条件。
答案 0 :(得分:0)
您正在检查输入错误,因为a
是数字,而用户输入是input
。另外,您正在比较String
,因此必须像这样使用equals
:
if(input.equals("a")) {
System.out.println("- - - - - a -");
} else if(input.equals("g")) {
System.out.println("- - - g - - -");
} else if(input.equals("m")) {
System.out.println("- - - - - m");
} // and so on...
您可能想要在主循环之前初始化Scanner
,然后在主循环之后关闭它,如下所示:
scanner = new Scanner(System.in);
for(int a=1;a<=7;a++){
System.out.println("Attempt "+a);
// some code ...
}
scanner.close();
最后但并非最不重要的一点是,每次调用此System.out.println(Arrays.toString(s));
时都要打印该阵列,因此,如果您不希望它出现在控制台上,则必须将其删除。