所以我正在做一個數字計數器的事情,基本上我希望它顯示 123 以及哪個數字是什么位值,例如 123
------------------------------------
Enter any number: 123
Ones: 3
Tens: 2
Hundreds: 1
------------------------------------
這是我的代碼
import java.util.Scanner;
public class digits {
public static void main(String[] args)
{
Scanner scann = new Scanner(System.in);
System.out.print("Enter any number: ");
int number = scann.nextInt();
int num1 = number % 10;
int num2 = number / 10 % 10;
int num3 = number / 100 % 10;
int num4 = number / 1000 % 10;
int num5 = number / 10000 % 10;
int num6 = number / 100000 % 10;
int num7 = number / 1000000 % 10;
int num8 = number / 10000000 % 10;
scann.close();
System.out.println("Ones: " num1);
System.out.println("Tens: " num2);
System.out.println("Hundreds: " num3);
System.out.println("Thousands: " num4);
System.out.println("Ten-Thousands: " num5);
System.out.println("Hundred-Thousands: " num6);
System.out.println("Millions: " num7);
System.out.println("Ten-Millions: " num8);
}
}
如果我只輸入 123,如何阻止它列印其余部分?
我得到的輸出
--------------------------
Enter any number: 123
Ones: 3
Tens: 2
Hundreds: 1
Thousands: 0
Ten-Thousands: 0
Hundred-Thousands: 0
Millions: 0
Ten-Millions: 0
------------------------
我想要的輸出
--------------------------
Enter any number: 123
Ones: 3
Tens: 2
Hundreds: 1
------------------------
uj5u.com熱心網友回復:
您需要在代碼中引入一個條件(或多個條件)。
您可以通過一系列if陳述句來實作這一點。但更好的方法是利用回圈。因為這將允許您擺脫中間變數(num1、num2等)并避免重復在 consol 上列印剩余部分的代碼行。這將使代碼更具可讀性和簡潔性。
為了能夠為這個問題應用回圈,您需要創建一個字串陣列來存盤所有量詞(“Ones:”、“Tens:”等)。
可以這樣做:
public static final String[] quantifiers =
{"Ones: ", "Tens: ", "Hundreds: ", "Thousands: ",
"Ten-Thousands: ", "Hundred-Thousands: ", "Millions: ", "Ten-Millions: "};
public static void main(String[] args) {
Scanner scann = new Scanner(System.in);
int number = scann.nextInt();
for (int i = 0; i < quantifiers.length && number > 0; i ) {
System.out.println(quantifiers[i] number % 10);
number /= 10; // does the same as number = number / 10;
}
}
輸入 123 的輸出
Ones: 3
Tens: 2
Hundreds: 1
uj5u.com熱心網友回復:
它可能對您的問題有所幫助。由于諸如“十”或“數百”之類的硬編碼術語,它不夠通用。
public static void main(String[] args) {
Scanner scann = new Scanner(System.in);
System.out.print("Enter any number: ");
int number = scann.nextInt();
int length = String.valueOf(number).length();
for(int i=0; i< length; i ){
if(i == 0){
System.out.println("Ones: " number % 10);
}else if(i == 1)
System.out.println("Tens: " number / 10 % 10);
else if(i == 2)
System.out.println("Hundreds: " number / 100 % 10);
else if(i == 3)
System.out.println("Thousands: " number / 1000 % 10);
else if(i == 4)
System.out.println("Ten-Thousands: " number / 10000 % 10);
else if(i == 5)
System.out.println("Hundred-Thousands: " number / 100000 % 10);
else if(i == 6)
System.out.println("Millions: " number / 1000000 % 10);
else if(i == 7)
System.out.println("Ten-Millions: " number / 10000000 % 10);
}
scann.close();
}
uj5u.com熱心網友回復:
您的代碼正在列印所有數字,因為這就是您所寫的:
System.out.println("Ones: " num1);
...等等。
如果您不想列印例如數千,只需洗掉println數千。如果您只想在有人實際輸入數千時列印它們,請添加一條if陳述句:
if (num4 > 0) {
System.out.println("Thousands: " num4);
}
對其他人重復。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/433406.html
標籤:爪哇
