2015-11-27 3 views
0

Я довольно новичок в Java. Затмение дает мне ошибкуЭтот метод должен возвращать результат типа String, Java

Этот метод должен возвращать результат типа

Я хочу, чтобы вернуть строку строка, если я надену ул все-таки для-петли я хотел бы получить локальную переменную не инициализирован. Как я мог его закодировать так, что есть

public String getQuadraticFactors() { 

    String str; 

    ArrayList<Integer> prFactors = new ArrayList<Integer>(); 

    ArrayList<Integer> qsFactors = new ArrayList<Integer>(); 

    ArrayList<Integer> p = getPRIntegerFactors(a), r = getPRIntegerFactors(a), q = getQSIntegerFactors(c), 
      s = getQSIntegerFactors(c); 

    System.out.println(p + "*********" + q); 


    System.out.println(p.get(0)); 
    // String str2 = "jjjhljl"; 
    String str2 = "(" + p + "x + " + q + ")(" + r + "x +" + s + ")"; 



    for (int k = 0; k < p.size(); k++) { 
     // System.out.print(k); 
     for (int l = 0; l < q.size(); l++) { 
      // System.out.print(k); 
      for (int m = 0; m < p.size(); m++) { 

       for (int n = 0; n < q.size(); n++) { 

        if (p.get(k) * r.get(m) == a && p.get(k) * s.get(n) + q.get(l) * r.get(m) == b 
          && q.get(l) * s.get(n) == c) { 

         System.out.println(a); 
         System.out.println(p.get(k) * r.get(m)); 
         return str = "(" + p.get(k) + "x + " + q.get(l) + ")(" + r.get(m) + "x + " + s.get(n) + ")";  


        } 


       } 

      } 
     } 

    } 

} 

ответ

0

есть небольшая вероятность, что вы никогда не ударите свой ответ. Чтобы это исправить, просто добавьте оператор возврата к самой нижней части вашего метода, возвращающего пустую строку или любое значение, вы хотели бы отправить сказать, что

if (p.get(k) * r.get(m) == a && p.get(k) * s.get(n) + q.get(l) * r.get(m) == b 
         && q.get(l) * s.get(n) == c) 

это, если утверждение ложно для всех случаев. Иногда вы никогда не столкнетесь с ситуацией, когда этот оператор if является ложным, но JVM просто нуждается в уверенности в том, что ему есть что вернуть, если оно ложно.

0

На самом деле вам нужно иметь альтернативу, когда некоторые из ваших for-loops не запускаются. Просто инициализируйте свою Str с некоторой ценностью еще лучше, проверьте ее внизу. Если это null, выведите исключение или инициализируйте его (в зависимости от стиля вашего кода). Когда вы проверяете перед возвратом, оно всегда будет иметь значение (или вы выбрали исключение).

Смежные вопросы