猜猜java变量中的游戏错误

时间:2014-09-21 17:43:33

标签: java

import java.util.Scanner;

class Cluedo2 {

private static Scanner clavier = new Scanner(System.in);

public static void main(String[] args) {


    System.out.print("Pensez a un personnage : Mlle Rose, ");
    System.out.println("le Professeur Violet, le Colonel Moutarde,");
    System.out.println("le Reverend Olive ou Mme Leblanc.\n");

    System.out.print("Est-ce que votre personnage est un homme ? ");
    System.out.print("(true : oui, false : non) ");
    boolean homme = clavier.nextBoolean();
    if(homme){
        System.out.print("Votre personnage a-t-il des moustaches ? ");

        boolean moustaches = clavier.nextBoolean();


        System.out.print("Votre personnage porte-t-il un chapeau ? ");
        boolean chapeau = clavier.nextBoolean();
    }

    else{
    System.out.print("Votre personnage porte-t-il des lunettes ? ");
    boolean lunettes = clavier.nextBoolean();
    }




    System.out.print("==> Le personnage auquel vous pensez est ");

    if (homme) {
        /*******************************************
         * Completez le programme a partir d'ici.
         *******************************************/
            if(moustaches){
                System.out.println("le Colonel Moutarde");
            }
            else if(chapeau){
                System.out.println("le Professeur Violet");
            }
            else{
                System.out.println("le Reverend Olive");
            }
    }
    else {

        if(lunettes){
        System.out.println("Mme Leblanc");  
        }
        else{
            System.out.println("Mlle Rose");
        }


        /*******************************************
         * Ne rien modifier apres cette ligne.
         *******************************************/
    }

    System.out.println();
}
}

我收到此错误:

 Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    moustaches cannot be resolved to a variable
    chapeau cannot be resolved to a variable
    lunettes cannot be resolved to a variable

at Cluedo2.main(Cluedo2.java:41)

1 个答案:

答案 0 :(得分:3)

您在if语句中声明了变量,因此它们不会存在于此代码块之外。如果您需要稍后在代码中访问声明,请将声明移出if块:

boolean moustaches = false;
boolean chapeau = false;
if(homme){
    System.out.print("Votre personnage a-t-il des moustaches ? ");
    moustaches = clavier.nextBoolean();
    System.out.print("Votre personnage porte-t-il un chapeau ? ");
    chapeau = clavier.nextBoolean();
}