多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 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); ```