# Java 程序：计算整数的位数

> 原文： [https://www.programiz.com/java-programming/examples/digits-count](https://www.programiz.com/java-programming/examples/digits-count)

#### 在此程序中，您将学习在 Java 中使用`while`循环和`for`循环来计算位数。

## 示例 1：使用`while`循环对整数中的位数进行计数

```java
public class NumberDigits {

    public static void main(String[] args) {

        int count = 0, num = 3452;

        while(num != 0)
        {
            // num = num/10
            num /= 10;
            ++count;
        }

        System.out.println("Number of digits: " + count);
    }
}
```

运行该程序时，输出为：

```java
Number of digits: 4
```

在此程序中，将循环`while`循环，直到测试表达式`num != 0`的值为 0（假）。

*   第一次迭代后，`num`将除以 10，其值将为 345。然后，`count`增至 1。
*   在第二次迭代后，`num`的值将为 34，并且`count`递增为 2。
*   在第三次迭代后，`num`的值将为 3，并且`count`增至 3。
*   第四次迭代后，`num`的值将为 0，并且`count`增至 4。
*   然后将测试表达式求值为`false`并终止循环。

* * *

## 示例 2：使用`for`循环对整数中的位数进行计数

```java
public class NumberDigits {

    public static void main(String[] args) {

        int count = 0, num = 123456;

        for(; num != 0; num/=10, ++count) {   
        }

        System.out.println("Number of digits: " + count);
    }
}
```

运行该程序时，输出为：

```java
Number of digits: 6
```

在此程序中，不使用`while`循环，而是使用不带任何主体的`for`循环。

在每次迭代中，`num`的值除以 10，`count`则加 1。

当`num != 0`为假，即`num = 0`时，`for`循环退出。

由于`for`循环没有主体，因此可以将其更改为 Java 中的单个语句，如下所示：

```java
for(; num != 0; num/=10, ++count);
```