gpt4 book ai didi

java - 为什么我的代码不从命令行获取输入?

转载 作者:行者123 更新时间:2023-12-01 10:52:15 25 4
gpt4 key购买 nike

这个程序的要点是从命令行获取一个三位数,然后将其反转。之后,应该从原始数字中减去相反的数字,并将原始数字与相反的数字相加。

这应该只接受三位数的数字,并且数字的第一位数字必须大于最后一位数字,以便在减去数字时不会出现负数。

代码编译正确,但是当我在命令行中输入数字时,仅打印出“输入三位数,第一位数字大于第三位数字”行。

应该打印出什么内容

$ java Rev 351
Reverse and subtract:
351
153 -
---
198

Reverse and add:
198
891 +
---
1089

这是我的代码:

public class Rev
{
public static void main(String[] args)
{
int num = 0;
for (int i = 0; i < args.length; i++)
{
System.out.println("Enter a three digit number, with the first digit larger than the third");
num = Integer.parseInt(args[i]);
reverseNum(num);
subtractNum(num);
addNum(num);
}

}

static boolean checkDigits(int number) // checks if numbers are correct
{
int reverse = reverseNum(number);

if(number > reverse)
{
throw new Error("Reverse number needs to be less than the original number!");
}
else
{
return true;
}
}

static int reverseNum(int number) //reverses number
{
int reverse = 0;

int r = 0;

while (number != 0)
{
if(number < 1000 || number > 99)
{

r = number % 10;

reverse = (reverse*10) + r;

number = number/10;
}
}

return reverse;
}

static void subtractNum(int number) // subtracts
{
int reverse = reverseNum(number);

int total = number - reverse;

System.out.println("Reverse and subtract: ");
System.out.println(number);
System.out.println(reverse + " - ");
System.out.println("---");
System.out.println(total);
System.out.println();

number = total;
}

static void addNum(int number) // adds
{
int reverse = reverseNum(number);

int total = number + reverse;

System.out.println("Reverse and add: ");
System.out.println(number);
System.out.println(reverse + " + ");
System.out.println("---");
System.out.println(total);

number = total;
}

}

最佳答案

public static void main(String[] args)
{
int num = 0;
for (int i = 0; i < args.length; i++)
{
System.out.println("Enter a three digit number, with the first digit larger than the third");
num = Integer.parseInt(args[i]);
reverseNum(num);
subtractNum(num);
addNum(num);
}

}

因此 args 变量是命令行参数。因此,如果您通过命令行进行编译,您将调用类似 java Rev.class 321 的内容,其中 321 是您的 3 位数字。如果您想使用 Java 控制台获取输入,请使用扫描仪

要接受输入,请使用如下内容:

 Scanner sc = new Scanner(System.in);
num = sc.nextInt();

关于java - 为什么我的代码不从命令行获取输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33794572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com