2017-06-04 8 views
-8
public class A{ 
public static void main(String[] args) { 
    int a; 
    int b;int c=0; 
    for(a=100;a<=999;a++){ 
     for(b=100;b<=999;b++){ 
      int n=a*b; 
      int temp=n; 
      while(n>0){ 
       int r=n%10; 
       c=(c*10)+r; 
       n=n/10; 
      } 
      if(temp==c){ 
       System.out.println(c); 
      } 
     } 
    } 
    } 
} 

コードはコンパイルされますが、実行中はすべてをスキップして終了します。助けてください。 P.P.問題4プロジェクト・オイラーコードをスキップして実行する

+1

[あなたのプログラムをデバッグする方法](https://ericlippert.com/2014/03/05/how-to-:デバッグの上

ガイドデバッグ小プログラム/)。 –

答えて

1

それは何も出力しませんtemp==cは、すべてのfalse

2

まず簡単にそれを読むためにコードをフォーマットすることができますですので:

public class A { 
    public static void main(String[] args) { 
     int a; 
     int b; 
     int c = 0; 
     for (a = 100; a <= 999; a++) { 
      for (b = 100; b <= 999; b++) { 
       int n = a * b; 
       int temp = n; 
       while (n > 0) { 
        int r = n % 10; 
        c = (c * 10) + r; 
        n = n/10; 
       } 
       if (temp == c) { 
        System.out.println(c); 
       } 
      } 
     } 
    } 
} 

今、私たちはブロックのみが離れて私たちを維持することに注意してくださいmainメソッド内のprintステートメントからは、2つのforループとifステートメントがあります。 2つのループを調べると、明らかに間違ったものは何もないので、それらを除外し、残っているものはifステートメントです。この時点で、tempは決してcと等しくなることはありません。 コードを見るだけでこのコンディションが満たされない理由を追跡できない場合は、print文を使用して簡単なデバッグを行うことができます(たとえば、変数cとtempをifの前に印字して値を視覚的に調べる)たとえば、IDEで見つけることができる高度なデバッグツールです。

How to debug a Java program without using an IDE?

http://www.vogella.com/tutorials/EclipseDebugging/article.html

あなたが学ぶべき
関連する問題