问答详情
源自:4-4 Java条件语句之嵌套 if

显示flag未初始化,求解

public class HelloWorld {

    public static void main(String[] args) {

int score = 94;

String sex = "女";

        String flag;

        if (score > 80){

            if (sex.equals("女")) {flag="进入女子组决赛";

            } else {flag="进入男子组决赛";}

        }

        System.out.println(flag);

}

}


提问者:慕粉1466052569 2016-07-05 00:09

个回答

  • 木刻雪原
    2016-07-09 05:55:41
    已采纳

    你这是作用域的问题,你的flag赋值操作是在if的大括号内,而你的输出操作是在if作用域(大括号外面),这明显是要报错的;

    给你一段测试代码:

            String a;
            int b=1;
            if(b==1){
                a="hello";
                System.out.println(a);
            }
            //System.out.println(a);

    你可以分别注释掉其中任意一个打印语句system.out.println,看看会有啥不同;

    自己动手,丰衣足食,求采纳;

  • weenhall
    2016-07-05 14:26:36

    前面的String flag=null;

  • 慕粉1466052569
    2016-07-05 12:27:00

    百度到一个答案,说:如果score<80,那么最后flag就只是被定义了却没有被赋值,所以最后无法输出flag,程序会报错

  • 慕无忌6321423
    2016-07-05 00:21:43

    你那里少些了一个条件应该这样写

    public class HelloWorld {

        public static void main(String[] args) {

    int score = 94;

    String sex = "女";

            String flag;

            if (score > 80,sex==女){

             docment.write("进入女子组决赛");

                } else { 

     docment.write("进入男子组决赛");

    }

            }

            System.out.println(flag);

    }

    }