显示flag未初始化,求解

来源:4-4 Java条件语句之嵌套 if

慕粉1466052569

2016-07-05 00:09

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);

}

}


写回答 关注

4回答

  • 木刻雪原
    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,看看会有啥不同;

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

    慕粉1469... 回复木刻雪原

    这个代码不好改吧。。我试着改了下。。发现跟原来代码的用法都不同了

    2016-07-29 19:11:03

    共 5 条回复 >

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

    前面的String flag=null;

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

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

    慕粉1466...

    所以最后要加入一个else{flag="淘汰";}

    2016-07-05 12:28:23

    共 1 条回复 >

  • 慕无忌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);

    }

    }


    无限大宇宙

    你这个也是错得有点多啊

    2016-07-07 09:02:05

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1167361 学习 · 18728 问题

查看课程

相似问题