java为什么整数长度程序中的循环代码会跳过
我正在尝试创建一个程序来计算给定数字的长度。我想我会这样做,把数字除以10,然后检查数字是否为<;=0.我不想编辑全局编号,所以我创建了该编号的实例版本,并将其用作for循环中的条件
所以很明显,这并没有很自然地起作用,我最终在调试器中查找,以找出发生了什么。看起来这个程序似乎完全跳过了这个循环,如果有任何帮助,我们将不胜感激
public static void sumFirstAndLastDigit(int number) {
int numberLength = 0;
int instanceNumber = number;
for(int i = 0; instanceNumber <= 0; i++) {
instanceNumber /= 10;
numberLength = i;
}
System.out.println("Number length = " + numberLength);
// to find length of number loop division by 10
}
}
程序应该使用for循环不断除以10,直到数字=到或小于零,循环运行的次数应该存储在数字长度整数中。在本例中,数字12321的答案应该是6,但打印的是0
# 1 楼答案
# 2 楼答案
你让它在^{时循环。循环中的“测试”是“持续”测试,而不是终止测试。只要测试为真,循环就会继续
根据您的描述,您需要
instanceNumber > 0
还要注意Avinash Gupta's point使用当前代码,您将少记一次。我会使用一个完全不同的循环来解决这个问题:
这很好,也很明确:如果
instanceNumber > 0
,它会增加numberLength
,然后除以10,然后再试一次# 3 楼答案
这将打印正确的输出