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);
}
}
你这是作用域的问题,你的flag赋值操作是在if的大括号内,而你的输出操作是在if作用域(大括号外面),这明显是要报错的;
给你一段测试代码:
String a;
int b=1;
if(b==1){
a="hello";
System.out.println(a);
}
//System.out.println(a);
你可以分别注释掉其中任意一个打印语句system.out.println,看看会有啥不同;
自己动手,丰衣足食,求采纳;
前面的String flag=null;
百度到一个答案,说:如果score<80,那么最后flag就只是被定义了却没有被赋值,所以最后无法输出flag,程序会报错
你那里少些了一个条件应该这样写
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);
}
}