表明第二个If语句中的错误原因为何?
import java.security.SecureRandom;
public class Test
{
public static void main(String[] args)
{
System.out.println("T : " + Tfun());
}
public static String Tfun()
{
SecureRandom r = new SecureRandom();
int T = 1+r.nextInt(10);
if(T >= 1 && T <= 5)
Integer.toString(T);
return "Fast_Plod";
if(T >= 6 && T <= 7)
Integer.toString(T);
return "Slow_Plod";
}
}
该如何解决?到底是什么问题?
答案 0 :(得分:1)
在此块(以及另一个if
块)中:
if(T >= 1 && T <= 5)
Integer.toString(T);
return "Fast_Plod";
您忘记了方括号,因此始终执行返回,导致该方法中的其余代码为无效代码(永远无法到达的代码)。缩进在Java中没有任何意义,因此您必须通过将return
语句括在if
块内以及所有其他应包含在if块中并带有方括号的行中来指定它。行Integer.toString(T);
也不执行任何操作。最后,T
可以大于7
,因此您也必须为此指定一个return
。
要解决此问题,只需添加括号:
if(T >= 1 && T <= 5) {
return "Fast_Plod";
}
if(T >= 6 && T <= 7) {
return "Slow_Plod";
}
else {
return ""; //return what you want to return if it's > 7
}
答案 1 :(得分:0)
要补充GBlodgett的答案,您可以不用在仅if
语句(只有一个;
)的if
语句中用括号括住要执行的块。 Java将在{{1}}之后执行第一条语句,然后继续进行,就好像作业已完成。
答案 2 :(得分:0)
import java.security.SecureRandom;
public class Test {
public static void main(String[] args) {
System.out.println("T : " + Tfun());
}
public static String Tfun() {
SecureRandom r = new SecureRandom();
int T = 1+r.nextInt(10);
if(T >= 1 && T <= 5) {
Integer.toString(T);
return "Fast_Plod";
}else if(T >= 6 && T <= 7) {
Integer.toString(T);
return "Slow_Plod";
}else {
return "your return value.";
}
}
}