返回数组中整数的第一个数字

时间:2014-09-06 22:41:42

标签: java arrays operators

我有一个方法,我很想知道它是如何工作的。我搜索过互联网,但无济于事。使用此方法时,将输入的整数的第一个数字返回到数组中。

令我困惑的是除法运算符。我知道操作员将左侧的操作数与右侧的操作符分开,并将答案应用到左侧。

以下是方法:

public static int firstDigit(int index) 
{
    while (index > 9)
        index /= 10;
    return (index);

}

在我输入整数的程序中,比如100,它读出数字1,作为输入整数的第一个数字。

这个答案不应该是10,因为index = 100 / = 10 = 10?

很抱歉,如果我做错了,我是新来的,在编程方面,在我提出这个问题之前,我做了大量的研究。

4 个答案:

答案 0 :(得分:1)

  

这个答案不应该是10,因为index = 100 / = 10 = 10?

没有。 10超过9,所以再划分它。

这里的关键部分是while循环。在上面的函数中,它没有括号,但可以重写为

public static int firstDigit(int index) 
{
    while (index > 9) 
    {
        index /= 10;
    }
    return (index);
}

我不打算详细解释while循环是什么,但它基本上重复了过程,而条件为真。

所以在100的情况下,它是这样做的:
"指数是否超过9?"是。将索引设置为index / 10。 (指数现在等于10)。 "指数是否超过9?"是。将索引设置为index / 10。 (索引现在等于1)。 "指数是否超过9?"编号返回索引。 (1)。

在99的情况下,它这样做:
"指数是否超过9?"是。将索引设置为index / 10。 (索引现在等于9.9,将其舍入为9)。 "指数是否超过9?"编号返回索引。 (9)。

答案 1 :(得分:0)

假设输入为100:

您从index = 100

开始

然后index = index / 10 = 10

10 > 9开始,再次除以10

index = index / 10 = 1

然后退出循环并返回1

基本上,此方法的作用是计算index / 10^(n-1),其中n是位数。这为您提供了最重要的数字。

答案 2 :(得分:0)

其中包含while的行表示以下行(进行除法的行)重复发生,直到左边的数字小于10。所以将100除以10得到10,然后将10除以10得到1,然后返回。

答案 3 :(得分:0)

  

这个答案不应该是10,因为index = 100 / = 10 = 10?

不,不应该。 为什么?由于 while循环

while (index > 9)

在第一次迭代中,index100的形式进入循环,并将其修改为100/10 = 10

然后,评估条件index > 9。由于它是true10 > 9),程序将继续下一次迭代。因此,index已修改为10/10 = 1

再次评估条件index > 9,但这次它是false1 > 9),因此程序退出循环并且返回的最后一个值index,1。