2017-06-04 162 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.S.問題4歐拉計劃代碼跳過運行

+1

你應該學會[如何調試程序(https://ericlippert.com/2014/03/05/how-to-調試小程序/)。 –

回答

1

它不會輸出任何東西,因爲temp==cfalse

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語句是兩個for循環,以及一個if statemet。 檢查兩個循環,它們沒有明顯的錯誤,所以我們排除它們,剩下的就是if語句。在這一點上,我們可以假設temp永遠不等於c。 如果你不能通過查看代碼來跟蹤爲什麼這個conition不滿意,你可以使用print語句做一些簡單的調試(即在if之前打印變量c和temp,例如直觀地檢查它們的值),或者使用一些例如,您可以在IDE上找到更高級的調試工具。

指南在調試運行:

How to debug a Java program without using an IDE?

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