2013-08-23 48 views
0

所以我是一個完整的Java和noob和一個計算器試驗。下面的代碼是我到目前爲止。問題是,代碼工作,直到我添加標籤「循環:」,添加標籤後,出於某種原因,掃描儀出現錯誤。我需要循環標籤,以便用戶可以選擇(如果代碼底部的語句)是否繼續使用計算器。任何幫助,將不勝感激。掃描儀「輸入無法解決變量」錯誤

import java.util.Scanner; 


public class MainClass { 



    public MainClass(){ 

     loops: 

     Scanner input = new Scanner(System.in); 


     System.out.println("First Number: "); 
     int number1 = input.nextInt(); 
     System.out.println("Second Number: "); 
     int number2 = input.nextInt(); 
     System.out.println("Operator (+, -, /, *)"); 
     String operation = input.next(); 
     String cont = input.next(); 

     int total; 

     if(operation.equals("+")){ 
      total = number1 + number2; 
      System.out.println(total); 
     } 
     if(operation.equals("-")){ 
      total = number1 - number2; 
      System.out.println(total); 
     } 
     if(operation.equals("*")){ 
      total = number1 * number2; 
      System.out.println(total); 
     } 
     if(operation.equals("/")){ 
      total = number1/number2; 
      System.out.println(total); 
     } 

     System.out.println("Continue? Y/N: "); 
     if (cont.equalsIgnoreCase("n")){ 
      break loops; 
     } 
    } 

    public static void main(String[] args) { 
     new MainClass(); 


    } 

} 
+0

我猜''循環:'是'MainClass'構造函數中的一個類型 – Smit

+0

'loops:'不合法 - 在Java中我們沒有標籤 – alfasin

+0

使用循環(while或for循環)而不是標籤和goto這在Java中不存在)。閱讀http://docs.oracle.com/javase/tutorial/java/nutsandbolts/flow.html。當你遇到錯誤時,請閱讀錯誤信息。這是信息。如果你不理解它,請發佈它。這對我們也是有益的,我們可以向你解釋。 –

回答

0

您需要使用循環。雖然標籤確實存在,但你沒有正確使用它們。標籤本質上可以命名一個循環,以便您可以中斷/繼續特定的循環。

0

見下文(還有一個問題 - 與cont)固定類,下面的代碼工作對我來說:

import java.util.Scanner;  

public class MainClass { 

    public MainClass(){ 

     Scanner input = new Scanner(System.in); 

     while(true){ 
      System.out.println("First Number: "); 
      int number1 = input.nextInt(); 
      System.out.println("Second Number: "); 
      int number2 = input.nextInt(); 
      System.out.println("Operator (+, -, /, *)"); 
      String operation = input.next(); 

      int total; 
      if(operation.equals("+")){ 
       total = number1 + number2; 
       System.out.println(total); 
      } 
      else if(operation.equals("-")){ 
       total = number1 - number2; 
       System.out.println(total); 
      } 
      else if(operation.equals("*")){ 
       total = number1 * number2; 
       System.out.println(total); 
      } 
      else if(operation.equals("/")){ 
       total = number1/number2; 
       System.out.println(total); 
      } 
      else{ 
       System.out.println("Undefined input!"); 
      } 
      System.out.println("Continue? Y/N: "); 
      String cont = input.next(); 
      if (cont.equalsIgnoreCase("n")){ 
       break; 
      } 
     } 
    } 

    public static void main(String[] args) { 
      new MainClass(); 
    } 
} 

BTW,我不喜歡做一個構造函數裏面這些東西,也許這只是我的個人品味,但我寧願用一種方法來定義它(靜態或不靜態 - 取決於你),並從main調用該方法。

0

你的代碼,首先需要在每個交換機cases.Secondly標籤的休息聲明如果使用不能適用於可變declarations.That答案,爲什麼你得到一個錯誤與Scanner.I建議你使用一個do-while循環這是一個項控制迴路,語法是這樣的

do 
    { 
     //code you want to execute,will get executed at least once 
    } 

    while(boolean condition); 

你可以把在做兼職的開關情況以及用戶是否希望繼續將去作爲,而part.Try它的布爾條件!