如果比较运行所有分支,Hangman

时间:2016-01-04 19:50:09

标签: java

我正在做一个刽子手任务,但我被困在其中的一部分;

玩家(用户)正在与计算机玩游戏。 用户几次玩游戏。当他们停止时,显示用户的总分。 每次播放用户都会看到一个菜单。

       String S;

       int s2;
       System.out.println("WELCOME TO WORD GAME V.12.01.16");
       System.out.println("****MENU****");
       System.out.println("FIRST YOUR NUMBER AND PRESS 'ENTER' ");
       System.out.printf("0:Stop \n 1:Name \n 2:City \n 3:Animal \n 4:Thing ");
       s=input.nextInt();
       if(s==0) {
           System.out.println("GOODBYE");
        }


        for(int i=0;i<category.length;i++) {
            if(s==i){

                System.out.println("GUESS FOR 1,CHARACTER FOR 2");
                s2=input.nextInt();
                if(s2==1){
                System.out.println("ENTER YOUR GUESS");
                S=input.nextLine();
                boolean result=correct(S);
                    if(result==true) {
                        System.out.println("Congrats");


                    }


                }


            }
        }


    }

        public static boolean correct(String X) {

            for(int i=1;i<5;i++){
              for(int j=0;j<10;j++){
                if (category[i][j].equals(X)) {

                }
              }
            }
            return true;




            }


   }

1 个答案:

答案 0 :(得分:1)

你的if语句if(category[s][j]==S);以错误的方式完成

@resueman在他的comment中也注意到比较字符串的方式也是错误的。您想使用.equals()来比较字符串。

S=input.nextLine();
System.out.println("Please Enter : ")
for(int j=0;j<11;j++){
    if (category[s][j].equals(S)){
        System.out.println("CONGRATS");
    }else {
        System.out.println("FAIL");
    }
}

编辑 - 来自OPs编辑的新代码

public static void main(String args[]) {
    String string;
    Scanner input = new Scanner(System.in);
    int s, s2;

    System.out.println("WELCOME TO WORD GAME V.12.01.16");
    System.out.println(
            "****MENU****");
    System.out.println(
            "FIRST YOUR NUMBER AND PRESS 'ENTER' ");
    System.out.printf(
            "0:Stop \n 1:Name \n 2:City \n 3:Animal \n 4:Thing ");
    s = input.nextInt();
    if (s == 0) {
        System.out.println("GOODBYE");
    }

    for (int i = 0; i < category.length; i++) {
        if (s == i) {

            System.out.println("GUESS FOR 1,CHARACTER FOR 2");
            s2 = input.nextInt();
            if (s2 == 1) {
                System.out.println("ENTER YOUR GUESS");
                string = input.nextLine();
                // Dont need to assign the boolean to a value
                // if(booleanVariable == true) is the same thing as writing if(boolean)
                // If it is true, it will execute, if false it will not
                if (correct(string)) {
                    System.out.println("Congrats");
                }

            } // if(s2==1)

        }// if (s == i)
    }// for
}// run

public static boolean correct(String X) {

    for (int i = 1; i < 5; i++) {
        for (int j = 0; j < 10; j++) {
            if (category[i][j].equals(X)) {
                // the guess was right
                return true;
            }
        }
    }
    // Nothing equaled the guess
    return false;

}