所以我正在做一个数字计数器,基本上我希望它显示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
------------------------发布于 2022-02-27 21:35:01
您需要在代码中引入一个条件(或多个条件)。
您可以使用一系列if语句来实现这一点。但是更好的方法是使用循环。因为这将允许您摆脱中间变量(num1、num2等),并避免重复在consol上打印剩余部分的代码行。这将使代码更加可读性和简洁性。
为了能够应用循环来解决这个问题,您需要创建一个字符串的数组,它将存储所有的量词(“1:”、"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发布于 2022-02-27 21:30:32
您的代码正在打印所有数字,因为这就是您所写的:
System.out.println("Ones: "+num1);...and等。
如果您不想打印例如千,只需删除println数千。如果您只想在实际输入数千的情况下打印它们,请添加一个if语句:
if (num4 > 0) {
System.out.println("Thousands: "+num4);
}为其他人重复。
发布于 2022-02-27 21:37:00
也许能帮上你的忙。由于硬编码的术语,如‘几十’或‘数百’,它是不够通用的。
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();
}https://stackoverflow.com/questions/71288480
复制相似问题