数量随机产生?和第二个if语句在这里的问题?

时间:2018-10-31 18:11:35

标签: java

表明第二个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";
  }
}

该如何解决?到底是什么问题?

3 个答案:

答案 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.";
        }
    }
}