2013-12-11 1 views
0

제 컴파일러에서 오류가 발생합니다. 아무도 단서가 있습니까? 문자열 변수 초기화 오류

import java.util.Scanner; 

public class mathProg { 

public static void main (String[] args) { 

Scanner keyboard = new Scanner(System.in); 

int num1, num2, numsum, numdif, numpro, numquo, numexp, cFunction; 
String userName; 
String functionName; 

System.out.println("Welcome to the calculator!"); 
System.out.println("What is your name?"); 
userName = keyboard.nextLine(); 

System.out.println("Hello, " + userName + "! How can I help you?"); 
System.out.println("Operable commands are '1' (add), '2' (subtract), "); 
System.out.println("'3' (multiply), '4' (divide), and '5' (exponent)."); 
cFunction = keyboard.nextInt(); 

switch(cFunction) { 

    case 1: 
    functionName = "addition"; 
    break; 
    case 2: 
    functionName = "subtraction"; 
    break; 
    case 3: 
    functionName = "multiplication"; 
    break; 
    case 4: 
    functionName = "division"; 
    break; 
    case 5: 
    functionName = "exponent"; 
    break; 
    default: 
    System.out.println("Invalid command."); 


}; 

System.out.println("You selected " + functionName + ". What number would you like to start with?"); 

}; 

}; 

오류

은 이것이다 :

내 IDE로 DrJava를 사용하고

1 error found:

File: /Volumes/USB20FD/Computer Science/Java/Labs/mathProg/mathProg.java [line: 45]

Error: The local variable functionName may not have been initialized

, 그리고 이클립스 0.A48 컴파일러. 이것은 빠른 학급 실험실을위한 것이므로 모든 도움을 주시면 감사하겠습니다! 빈 문자열

+0

'cFunction'이 123이면'functionName'의 값은 무엇입니까? –

답변

0

변경

String functionName; 

default 경우에서

String functionName = null; 
0

설정 FUNCTIONNAME는 :

기본 케이스에 도달하면
String functionName = ""; 

, functionName는 값을 수있는 기회를하지 않습니다.

0

에, functionName가 초기화되지 않지만 처음 사용하기 전에 초기화해야합니다. 컴파일러는 모든 로컬 변수가 사용되기 전에 모든 실행 경로에서 초기화되도록해야합니다.

switch 이전에 초기화하거나 default 경우 초기화하거나 케이스에 Exception을 넣으십시오.