我的代码的目标:能够编写一个程序,我可以在其中输入任何数字 int 作为命令行参数,并显示整数中有多少位是 7。
我的问题是我不明白为什么我的代码只运行一次 for 循环。我插入了 system.out.println(sevens);看看当我用 456789 这样的随机数编译时这个循环工作了多少次。
我只能想到一个 for 循环用于这个,并在开始时修复了一些简单的错误。我也检查了我的括号
public class TestingSevens {
public static void main(String[] args) {
int sevens = Integer.parseInt(args[0]);
int count = 0;
for (int i = 0; i < args.length; i++) {
if (sevens%10 == 7) {
count += 1;
}
sevens = sevens/10;
System.out.println(sevens);
}
System.out.println(count);
}
}
输入数字如 456789 的结果是第一次打印为“45678”,第二次打印为“0”。我知道这个数字出于某种原因只在循环中运行一次,因为它在跳出循环以打印计数之前切断了最后一个数字……有什么建议吗?
最佳答案
我假设您想遍历 sevens
的每个数字。由于 sevens
从 args[0]
初始化,循环限制应该匹配并查看 args[0].length()
而不是 args.length
.
for (int i = 0; i < args[0].length(); i++)
另一种编写循环的方法是迭代直到 sevens
达到 0。这与循环体更好地对齐;两者都使用相同的变量。
while (sevens > 0) {
if (sevens%10 == 7) {
count += 1;
}
sevens /= 10;
System.out.println(sevens);
}
关于java - 为什么这个 for 循环只运行一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58262930/