我是Java的新手,我不确定如何解决在尝试运行此代码时遇到的错误:
import java.util.Scanner;
public class P3_3
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Please enter a number: ");
int number = in.nextInt();
if (number < 0) number *= -1;
if (number >= 10 && number < 100)
{
number = 2;
}
else if (number >= 100 && number < 1000)
{
number = 3;
}
else if (number >= 1000 && number < 10000)
{
number = 4;
}
else if (number >= 10000 && number < 100000)
{
number = 5;
}
else if (number >= 100000 && number < 1000000)
{
number = 6;
}
else if (number >= 1000000 && number < 10000000)
{
number = 7;
}
else if (number >= 10000000 && number < 100000000)
{
number = 8;
}
else if (number >= 100000000 && number < 1000000000)
{
number = 9;
}
else
{
System.out.println("Number is greater than 10 billion.");
}
System.out.printf("%d has ", number + "digits.");
}
}
我正在尝试通过检查数字是否为数字>= 10, >= 100
等等来打印数字具有的位数。我运行代码,能够输入一个int值,但是一旦输入并按Enter,就可以得到它一个错误,似乎看不到我做错了什么。谁能启发我?
问题在这里:
System.out.printf("%d has ", number + "digits.");
该%d
格式说明需要作为第二个参数传递一个整数printf
,而是通过连接number
和"digits."
,你居然通过了String
。
固定版本:
System.out.printf("has %d digits ", number);
请注意,您不能同时打印原始数字和位数,因为您在number
变量中覆盖了一个数字和另一个数字。也许使用两个不同的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句