2013-09-23 7 views
-1

변수 potas가 초기화되지 않았을 수 있다는 불만을 제기합니다. 나는 그 버그를 알아낼 수 없다. 어떤 제안이라도 제발?변수 potas가 초기화되지 않았을 수 있습니다.

고마워요.

내 프로그램 자체는이 다음과 같이 수행 shouild :

Welcome to our steak house! I will now take your order. 
Which steak can I get you? 
please select: 
1 T-Bone 
2 Sirloin 
3 Rib Eye 
3 
How do you want your steak cooked? 
please select: 
1 rare 
2 medium rare 
3 medium 
4 medium done 
5 done 
? 4 
What do you want on the side? 
please select: 
1 bread 
2 potatoes 
? 2 
How do you want your potatoes? 
please select: 
1 fried 
2 wedged 
3 baked 
? 3 
Which topping do you want? 
please select: 
1 butter 
2 French dressing 
3 garlic 
? 3 
Thank you, you ordered: Rib Eye, medium done with baked potatoes and garlic topping. 

자바 코드 :

public class EatingOut { 

public static void main(String[] args) { 

    int steakopt, steakcook, sideorder, potat, top; 
    String steak, st1 ="T-Bone", st2 = "Sirloin", st3 = "Rib Eye"; 

    String steakc, stc1 = "rare", stc2 = "medium rare", stc3 ="medium", stc4 = "medium done", stc5 = "done"; 

    String topping, topping1 = "butter", topping2 ="French dressing", topping3 = "garlic"; 

    TextIO.put("Welcome to our steak house! I will now take your order.\n"); 
    TextIO.put("Which steak can I get you?\nplease select:\n"); 
    TextIO.put("1 T-Bone\n2 Sirloin\n3 Rib Eye\n"); 
    steakopt = TextIO.getlnInt(); 

    if (steakopt == 1) 
     steak = st1; 
    else if (steakopt == 2) 
     steak = st2; 
    else 
     steak = st3; 

    TextIO.put("How do you want your steak cooked?\nplease select:\n");  
    TextIO.put("1 rare\n2 medium rare\n3 medium\n4 medium done\n5 done"); 
    steakcook = TextIO.getlnInt(); 

    if (steakcook == 1) 
     steakc = stc1; 
    else if (steakcook == 2) 
     steakc = stc2; 
    else if(steakcook == 3) 
     steakc = stc3; 
    else if(steakcook == 4) 
     steakc = stc4; 
    else 
     steakc = stc5; 

    TextIO.put("What do you want on the side?\nplease select:\n1 bread\n2 potatoes"); 


    sideorder = TextIO.getlnInt(); 

    String potas, potopt1 = "fried", potopt2 = "wedged", potopt3 = "baked"; 

    String toside, side1="bread", side2 = "potatoes"; 


    if (sideorder == 2) 
    { 
     TextIO.putln("How do you want your potatoes?\nplease select:\n1 fried\n2 wedged\n3 baked\n"); 
     potat = TextIO.getlnInt(); 

     if (potat == 1) 
      potas = potopt1; 
     else if (potat == 2) 
      potas = potopt2; 
     else 
      potas = potopt3; 
    } 
    else 
     toside = side1; 

    TextIO.putln("Which topping do you want?\nplease select:\n1 butter\n2 French dressing\n3 garlic"); 

    top = TextIO.getlnInt(); 

    if (top == 1) 
     topping = topping1; 
    else if (top == 2) 
     topping = topping2; 
    else 
     topping = topping3; 


    TextIO.putf("Thank you, you ordered: %s, %s with %s potatoes and %s topping.", steak,steakc,potas, topping); 





} 

} 

답변

0

sideorder != 2 다음 변수 potas 모든 초기화되지 않고 JVM 인쇄 해야할지하지 않습니다.

좋은 해결책은 다음과 같이 null 또는 empty string로 초기화하는 것입니다

String potas=null, potopt1 = "fried", potopt2 = "wedged", potopt3 = "baked"; 
+0

감사합니다. null로 초기화하면 문제가 해결됩니다. – user234899

+0

@ user234899 그러면 답을 친절하게 받아 들일 수 있습니다. – Claudiu

0

이 줄 :

String potas, potopt1 = "fried", potopt2 = "wedged", potopt3 = "baked"; 

중 하나가 "potas"입니다, 여러 문자열을 선언 아무것도하지만 초기화 .

0

정확하게 들리지만 potas를 초기화하지 않았습니다. 당신이 선언 할 때 그것이 무엇인지 정의하지 않습니다.

String potas = "", potopt1 = "fried", potopt2 = "wedged", potopt3 = "baked"; 

나머지 변수도 초기화해야합니다.

관련 문제