Java를 처음 사용합니다. 어리석은 질문이라면 죄송합니다. while
루프 내부에서 두 개의 변수에 새 값을 할당하고 싶지만 작동하지 않습니다. newString
컴파일을 시도 할 때 " 로컬 변수 가 초기화되지 않았을 수 있습니다 "라는 오류 메시지 가 나타납니다. 예를 들면 다음과 같습니다.
public class Test {
public static String example() {
String first;
String second;
String newString;
int start = 1;
while (start<5) {
if (start<4) {
first = "hello";
second = "world";
newString = first + second;
}
start += 1;
}
return newString;
}
public static void main(String[] args) {
System.out.println(example());
}
}
메서드의 결과로 변수를 반환 할 때 컴파일러는 값이 해당 변수에 할당되는지 확인해야합니다 (귀하의 경우 newString
).
조건 start < 4
이 true
어떤 지점에 있을 것이라는 것은 꽤 분명하지만 컴파일러는이를 파악할만큼 지능적이지 않습니다. 즉, 값을 가진 변수 만 반환해야합니다.
방법의 목적에 따라 다음과 같은 기회가 있습니다.
String newString = "";
이 경우 메서드가을 반환하지 않을 null
것이므로 오류를 찾는 데 까다로울 수 있습니다.
또 다른 기회는
String newString = null;
메서드가 null
값 을 반환하도록 허용하려는 경우 .
이 경우에는 결국 if
-block을 입력하고 newString
다른 경우 에는 변수 에 값을 할당 할 것이 분명하므로 그다지 명확하지 않으므로 메서드 반환 null
값 을 허용할지 여부를 결정해야합니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다