2016-09-12 177 views
1

我一直想寫使用while循環返回第一和最後一個數字輸入程序的整數的第一和最後一位數字。返回使用while循環

這裏是我到目前爲止有:

import java.util.Scanner; 
public class FirstLastInt { 
public static void main(String[]args) 
{ 
    int fdig, ldig, num; 

    Scanner in = new Scanner(System.in); 

    System.out.println("Enter an Integer."); 
    num = in.nextInt(); 

    ldig = num%10; 

    while (num > 0) 
    { fdig = num/10; 
     num = num/10; 

     System.out.println("The first digit is " + fdig + ", and the last digit is " + ldig + "."); 
    } 
} 

num是整數進入,fdig是成爲第一位,並ldig是成爲最後一位。

我估計最後的數字會一直NUM%10,我意識到到目前爲止使用while循環像它的寫入將返回第一位......隨着一串其他數字我不知道的真的需要。

例如:

run: 
Enter an Integer. 
98884 
The first digit is 9888, and the last digit is 4. 
The first digit is 988, and the last digit is 4. 
The first digit is 98, and the last digit is 4. 
The first digit is 9, and the last digit is 4. 
The first digit is 0, and the last digit is 4. 
BUILD SUCCESSFUL (total time: 3 seconds) 

它看起來像循環運行之前和之後我得到了我想要的數字。無論如何要指定我想要打印哪一行? (在這個例子中,它是「第一個數字是9,和最後一位數字是4」)

+0

爲什麼在while循環中打印? –

+0

將'println'放在while循環之外。 –

+0

如果println在while循環之外,則變量fdig不會被初始化。所以我把它放進去了。 –

回答

5

如果你想繼續使用自己的代碼,看看它是如何實現的,然後改變你的條件並在外面打印系統打印:

import java.util.Scanner; 
public class FirstLastInt { 
    public static void main (String[] args) { 
     int ldig, num; 

     Scanner in = new Scanner(System.in); 

     System.out.println("Enter an Integer."); 
     num = in.nextInt(); 

     ldig = num % 10; 

     // keep looping num until it is in the range of 0-9 
     while (num >= 10) { 
      num = num/10; 
     } 
     //initialize fdig variable and set it equal to num, just to make things clearer 
     int fdig = num; 

     System.out.println("The first digit is " + fdig + ", and the last digit is " + ldig + "."); 
    } 
} 
+1

您應該指出您爲了達到正確結果而更改的內容以及爲什麼需要進行此更改。現在你有它的方式,它看起來幾乎和OP – smac89

+0

發佈的代碼類似。既然你還沒有初始化fdig,並且你的println沒有進入循環,你可能需要考慮初始化它,我們加入一個額外的fdig = num/10之前。 –

+1

抱歉沒有正確執行此操作,請立即進行編輯 – JapanGuy

0

下面是使用String.valueOf的方法,它不需要一個循環:

Scanner in = new Scanner(System.in); 
System.out.println("Enter an Integer."); 
int num = in.nextInt(); 

String numString = String.valueOf(num); 
char first = numString.charAt(0); 
char last = numString.charAt(numString.length() - 1); 

System.out.println("The first digit is " + first + ", and the last digit is " + last); 
+0

我認爲OP正試圖用他們的代碼來診斷問題,而不是有一個完全不同的解決方案交給他們。 –

+0

@JasonC如果這是一個家庭作業問題,那麼是的,如果真實世界,我認爲有更好的方法來做到這一點。 –