2017-10-09 31 views
-1

我對Java相對來說比較新,我現在正在學習while,while和for循環。我想創建一個應用程序來顯示使用這些概念的數字的總和,但我不知道如何。我以前創建了一個只顯示數字的應用程序。這裏是。創建一個顯示數字總和的java應用程序

int digit; 
Scanner input = new Scanner(System.in); 

do { 
    System.out.println("Enter a positive integer: "); 
    digit = input.nextInt(); 
} while (digit <= 0); 
input.close(); 

String sdigit = digit + ""; 
for (int i = 0; i < sdigit.length(); i++){ 
    System.out.println(sdigit.charAt(i)); 
} 

我想想一個可能的方式來擴展這個程序,但我不知道爲什麼。再一次,這個程序不是我所需要的,我需要的是以某種方式使用for或while循環將數字的數字相加。謝謝!

+0

你的整數倍時間(多個號碼)獲得。嘗試讀整數一次(不在循環中)。然後你在循環中做一些邏輯來獲得單個數字。 –

+0

這將繼續詢問用戶的輸入,除非和直到你輸入一個非數字的數字並且破壞程序(因爲你正在獲得'nextInt()') – mrid

+1

@mrid不,如果輸入正數,它將停止循環。這就是'while(digit <= 0)'的意思。 –

回答

0

不多代碼必須要添加的數字求和:

第一溶液:使用與。減去「0」字符

int digit; 
Scanner input = new Scanner(System.in); 

do { 
    System.out.println("Enter a positive integer: "); 
    digit = input.nextInt(); 
} while (digit <= 0); 
input.close(); 

String sdigit = digit + ""; 
int sum=0;  

for (int i = 0; i < sdigit.length(); i++){ 
    System.out.println(sdigit.charAt(i)); 
    sum = sum + (sdigit.charAt(i) - '0'); 
} 

System.out.println("Sum is : "+sum); 

第二溶液:使用的Integer.parseInt它轉換字符串爲int :

int digit; 
Scanner input = new Scanner(System.in); 

do { 
    System.out.println("Enter a positive integer: "); 
    digit = input.nextInt(); 
} while (digit <= 0); 
input.close(); 

String sdigit = digit + ""; 
int sum=0; 
for (int i = 0; i < sdigit.length(); i++){ 
    System.out.println(sdigit.charAt(i)); 
    sum = sum + Integer.parseInt(sdigit.subString(i,i+1)); 
} 

System.out.println("Sum is : "+sum); 
+0

我試圖使用添加sdigit.charAt(i)到總和 我想sum + = sdigit.charAt(i),但它沒有工作的想法。你能解釋爲什麼我必須添加一個 - 0嗎?謝謝。除此之外,非常感謝您的幫助。 – trashprogrammer

+0

sdigit.charAt(i)是字符類型不是整數。你不能直接添加char和int。 sdigit.charAt(i)減去'0'允許進行轉換 – Tuco

+0

字符,在後面,字符代碼:代表字符的數字。數字字符的順序與自然數字順序相同('1'是'0'字符代碼中的+1,'2'是+2等等),所以如果您執行字符數減號'0'字符,你得到它的索引 – Tuco

0
int digit; 
System.out.println("Enter a positive integer: "); 
number= Integer.parseInt(System.console().readLine()); 

int sum=0; 
int currDigit = 0; 
while(number/10 > 0) { 
    currDigit = number % 10; //fetching last digit 
    System.out.println(currDigit); 
    sum = sum + currDigit; 
    number = number/10; 
} 
相關問題