2016-12-11 10 views
-1

try/catchブロックを使用しようとしていますが、変数値をブロックから取得できません。 私は何ができますか?ブロック外の変数(try/catchブロック内にある変数)を使用するにはどうすればよいですか?

import java.util.Scanner; 

public class Program { 

    public static void main(String[] args) { 
     System.out.print("Enter a number : "); 
     returnValue(); 
     System.out.println(returnValue()); 
    } 

    public static int returnValue() { 
     Scanner imp = new Scanner(System.in); 
     boolean loP = true; 
     do { 
      String num = imp.next(); 
      try { 
       int Nums = Integer.parseInt(num); 
       loP = false; 
      } catch (Exception e) { 
       System.out.print("Please enter a number : "); 
      } 
     } while (loP); 
     imp.close(); 
    } 
} 
+1

他の変数を宣言したのと同じように、ブロックの外に宣言します。 –

答えて

0

ブロックの外に宣言し、デフォルト値を指定します。

public static int returnValue(){ 
    Scanner imp = new Scanner(System.in); 
    boolean loP = true; 
    int Nums =0; //declare them outside the try...catch block and give them a default value 
    do { 
     String num = imp.next(); 
     try { 
      Nums = Integer.parseInt(num); 
      loP = false; 
     } catch (Exception e) { 
      System.out.print("Please enter a number : "); 
     } 
    } while (loP); 
    imp.close(); 
    } 
    } 
0

必要な変数を宣言する必要があるのは、scopeです。たとえば、変数を宣言する場合は、Nums変数を宣言するだけです。

0

クラスのプライベートintを使用します。 try/catcheセクションから更新してください。どの機能からでも使用できます。それ以外の場合は警告を初期化し、あなたを決して表示されません、

public static void main(String[] args) { 
    System.out.print("Enter a number : "); 
    System.out.println(returnValue()); 
    System.out.print("Enter a number : "); 
    System.out.println(returnValue()); 
} 

public static int returnValue() { 
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); 
    do { 
     try { 
      String num = bufferedReader.readLine(); 
      return Integer.parseInt(num); 
     } catch (Exception e) { 
      System.out.print("Please enter a number : "); 
     } 
    } while (true); 
} 
0

これは使ってみてくださいデバッグ

1

いくつかの初期値を持つメソッドのreturnValue()の開始時に変数を宣言し、将来的にそれはであなたを助ける:

public class program{ 
private int something; 
public int somemorething; 
} 
関連する問題