-1

変数をリコールするときに Java が何に問題を抱えているのかを正確に見つけるのに苦労しています。私は単純なチャットボットを作成していますが、これは私がこれまでに持っているものです:

public class Chatbot {
    public static void main(String[] args) {
        String name = JOptionPane.showInputDialog("Hi! How are you? My name is Chatbot! What is yours? ");
        if (name.compareTo("a")<0){
            String city = JOptionPane.showInputDialog("Nice to meet you! Where are you from, "+name);
        }
        else
        {
            String city = JOptionPane.showInputDialog("Huh. That's a strange name. Where are you from,"+name);  
        }


        if (!city.equals("Seattle")){

        }

    }
}

私の問題は、Java が if else ステートメント内の変数 city を認識しないため、city が解決されていないと言うことです。ブール式内のオブジェクトをJavaに認識させるにはどうすればよいですか? 私は何を間違っていますか?

4

4 に答える 4

3

現在city、 のスコープは if または else ブロックに限定されています。メソッド レベルで宣言してローカル変数にすることでスコープを広げます。

public static void main(String[] args) {

String name = JOptionPane.showInputDialog("Hi! How are you? My name is Chatbot! What is yours? ");
String city="";
if (name.compareTo("a")<0){
    city = JOptionPane.showInputDialog("Nice to meet you! Where are you from, "+name);
}
else
    {
    city = JOptionPane.showInputDialog("Huh. That's a strange name. Where are you from,"+name);  
     }
于 2013-04-02T14:16:19.183 に答える
2

上にデカール String city = nullif elseブロック外でなければなりません。

String city=null;
    String name = JOptionPane.showInputDialog("Hi! How are you? My name is Chatbot! What is yours? ");
if (name.compareTo("a")<0){
            city = JOptionPane.showInputDialog("Nice to meet you! Where are you from, "+name);
        }
        else
        {
            city = JOptionPane.showInputDialog("Huh. That's a strange name. Where are you from,"+name);  
        }
于 2013-04-02T14:17:20.720 に答える