2013-12-11 3 views
0

Я получаю сообщение об ошибке от моего компилятора. У кого-нибудь есть подсказки?String variable Ошибка инициализации

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?"); 

}; 

}; 

Ошибка заключается в следующем:

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

Я использую DrJava как мой IDE и Eclipse, 0.A48 компилятор. Это для быстрой классной лаборатории, поэтому вся помощь будет оценена!

+0

что будет значением 'functionName', если' cFunction' равен 123? –

ответ

0

Изменить

String functionName; 

в

String functionName = null; 
0

Set FunctionName пустая строка:

String functionName = ""; 

Если дело по умолчанию будет достигнуто, functionName никогда не будет иметь шанс иметь значение.

0

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

Либо инициализировать его к чему-то перед switch, инициализировать его в default случае, или бросить Exception в default случае.