2017-12-21 12 views
-2

私はJavaに比較的新しいです。これはこのサイトの最初の投稿です。これまでに何度も使ったことがありますが、今回は私の問題に対する答えが見つかりませんでした。 このコードは動作します私のIDE(JDeveloper)では素晴らしいですが、何らかの理由で、CMDで実行すると特定のパラメータ(例:7844578642 2; 7844578642 16 - IDEではCMDではなく2つのセットが動作します)でハングします。 アイデアは何ですか?JavaプログラムはCMDでハングアップしますが、JDeveloperで正常に動作します。どうして?

class PR13_19 { 
public static void main(String args[]) { 
    long N = 0; 
    int base = 0,pow = 1; 
    String result = ""; 
    if(args.length != 2){ 
     System.out.println("Please enter Number and base..."); 
     return; 
    } 
    try{ 
     N = Long.parseLong(args[0]); 
     base = Integer.parseInt(args[1]); 
     if(!(base >= 2 && base <= 16)) throw new NumberFormatException(); 
    }catch(NumberFormatException | StringIndexOutOfBoundsException exc){ 
     System.out.println("Invalid Input"); 
     return; 
    } 
     //converts number N in base 10 to any base "base" 
     // if base >10 11=A,12=B,13=C....(ex.hexadecimal) 
    while(pow <= N/base) 
     pow *= base; //greatest power of "base" >= N 
    while(pow > 0){ 
     if(N >= pow) { 
      if(N/pow > 9) result += (char)((N/pow) + 55); 
      else     result += (N/pow); 
      N -= (N - (N % pow)); 
     } 
     else result += "0"; 
     pow /=base; 
    } 
    System.out.println(result); 
} 

}

答えて

0

あなたはjavas LONGスコープで定義された番号を入力するか、コードを変更する必要があります。

try/catch句を追加して、どのエラーが発生しているかを確認することもできます。

関連する問題