` public static int Digits(int n){
int nbr=0,count=0;
while (nbr!=0){
nbr= nbr/10;
count++;
}
return count;}`
很抱歉,这个问题看起来很愚蠢,但是我从未在大学以外的任何大学学习过Java,而且还有一项作业。练习要求使用方法说明一个整数的位数小于,等于还是大于另一个整数的位数。为此,我在方法中使用了while循环,该循环告诉我给定整数的位数。
我知道如果要在循环外使用它必须在循环外声明一个变量,但是我必须在循环外初始化它才能在循环内使用它。但是我想要在循环内计算完计数后的值,尽管我尽力尝试并寻找答案,但没有找到答案,但我无法做到这一点。
答案 0 :(得分:1)
首先,您需要在循环内删除count = 0
,因为它始终为0。第二件事是,您的while条件(nbr! = 0
)永远都不为真,因为在声明中将其设置为0
下面的函数返回作为参数传递的数字位数
public static int Digits(int n)
{
int count = 0;
while(n != 0)
{
count++;
n /= 10;
}
return count;
}
答案 1 :(得分:0)
此代码中需要进行一些修复/改进。
public static int countOfDigits(int n) {
if (n == 0) {
return 1;
}
int count = 0;
while (n != 0) {
n = n / 10;
count++;
}
return count;
}