Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 返回数组中整数的第一位_Java_Arrays_Operators - Fatal编程技术网

Java 返回数组中整数的第一位

Java 返回数组中整数的第一位,java,arrays,operators,Java,Arrays,Operators,我有一个方法,我很想知道它到底是如何工作的。我在网上搜索过,但没有结果。使用此方法时,会将输入的整数的第一位返回到数组中 使我困惑的是除法和运算符。我知道运算符将操作数左除右,并将答案应用于左侧 方法如下: public static int firstDigit(int index) { while (index > 9) index /= 10; return (index); } 在我的程序中,当输入一个整数时,比如说100,它会读出数字1,作为

我有一个方法,我很想知道它到底是如何工作的。我在网上搜索过,但没有结果。使用此方法时,会将输入的整数的第一位返回到数组中

使我困惑的是除法和运算符。我知道运算符将操作数左除右,并将答案应用于左侧

方法如下:

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

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

这个答案不应该是10吗,因为索引=100/=10=10


对不起,如果我做错了,我是新来的,在编程方面,我在问这个问题之前做了大量的研究。

假设输入是100:

index=100开始

然后
index=index/10=10

由于
10>9
,因此再次除以
10

index=index/10=1

然后退出循环并返回
1


基本上,此方法所做的是计算
索引/10^(n-1)
,其中n是位数。这将为您提供最有效的数字。

带有
的行,而
在其中意味着下一行(进行除法的那一行)重复出现,直到剩下的数字小于10为止。所以100除以10得到10,然后10除以10得到1,返回

这个答案不应该是10吗,因为索引=100/=10=10

不,不应该为什么?因为while循环

在第一次迭代中,
索引作为
100
进入循环,并修改为
100/10=10

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

再次计算条件
index>9
,但这次它是
false
1>9
),因此程序退出循环并返回
index
,1的最后一个值

这个答案不应该是10吗,因为索引=100/=10=10

10号大于9号,所以它再次将其分开

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

public static int firstDigit(int index) 
{
    while (index > 9) 
    {
        index /= 10;
    }
    return (index);
}
我不打算详细解释while循环是什么,但它基本上重复了这个过程,而条件是真的

因此,在100的情况下,它会这样做:
“索引是否超过9?”是。将index设置为index/10。(指数现在等于10)。“索引是否超过9?”是。将index设置为index/10。(索引现在等于1)。“索引是否大于9?”否。返回索引。(1)

对于99,它会这样做:

“索引是否超过9?”是。将index设置为index/10。(指数现在等于9.9,四舍五入为9)。“索引是否大于9?”否。返回索引。(9) .

你知道什么是循环吗?考虑阅读或者你错过的是while循环。代码会一直将索引除以10,直到结果小于10,然后返回结果。在本例中,100除以10两次返回1。感谢您的帮助!我完全浏览了一下while循环。我以后会记住的。
public static int firstDigit(int index) 
{
    while (index > 9) 
    {
        index /= 10;
    }
    return (index);
}