#java #variables #local-variables
#java #переменные #локальные переменные
Вопрос:
У меня есть эта проблема, когда я инициализирую переменную вне forloop. А затем внутри forloop попробуйте обновить значение этой переменной, но каждый раз, когда я «локальная переменная не используется». Я попробовал простой пример (ниже), и проблема все еще существует. Ret выделяется в моем компиляторе и отображается сообщение об ошибке. Я не понимаю, почему я больше не могу получить доступ к переменным внутри своих циклов. Возможно, это связано с тем, что я пропустил скобку где-то в моих методах где-то еще в классе?
public static String test(String input) {
String ret = "";
for(int i=0;i<5; i ) {
ret = "m";
}
return "";
}
Мне было интересно, может ли кто-нибудь помочь мне с этим. Я был бы очень признателен. Спасибо!
Комментарии:
1. используйте ее в инструкции return
return ret;
2. Один вопрос: почему вы объявили
ret
? И почему вы ее модифицируете?3. Это предупреждение, а не ошибка. Я думаю, это говорит вам, что вы что-то вычисляете
ret
и выбрасываете, а не возвращаете (как, я думаю, вы намеревались). Так что, возможно, вам стоит обратить внимание 🙂4. FWIW — я не получаю это сообщение при компиляции с
javac
помощью (Java 8).5. Почему вы возвращаете «»?
Ответ №1:
Вы получаете это сообщение об ошибке, потому что вы создаете переменную ret, но не используете ее. Например, если вы используете переменную в операторе if, вы больше не получите ошибку.
public static String test(String input) {
String ret = "";
for(int i=0;i<5; i ) {
ret = "m";
}
if (ret.equals("mmmmm")){
ret ="";
}
return "";
}
Ответ №2:
Я подозреваю, что ваша среда разработки или компилятор замечают, что вы создаете текст в локальной переменной ret
, но вы никогда не используете этот текст. Этот созданный текст отбрасывается, и вы возвращаете пустую строку. Ваши инструменты предупреждают вас об этой ерунде.
Кроме того, вы не используете аргумент, переданный вашему статическому методу, больше бессмыслицы.