Java中的基本hangman程序

时间:2018-12-09 19:06:51

标签: java string if-statement netbeans conditional-statements

我需要获取条件来确定字母是否为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]行上,我希望它不打印此行。但是条件。

1 个答案:

答案 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));时都要打印该阵列,因此,如果您不希望它出现在控制台上,则必须将其删除。