import java.util.Scanner;
public class multiplesProgram {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
int num = input.nextInt();
int counter2 = 1;
for (int i = 1; i <=10; i++){
int product = num * counter2;
System.out.println(num + "x" + counter2 + "=" + product);
i++;
counter2++;
}
}
}
这是我的代码,输出为:
2x1=2
2x2=4
2x3=6
2x4=8
2x5=10
我在for循环中放入<= 10,为什么它显示5而不是10;
答案 0 :(得分:12)
您要在两个位置递增i
-一次出现在for
循环“标题”中:
for (int i = 1; i <=10; i++)
,然后进入循环正文>
System.out.println(num + "x" + counter2 + "=" + product);
i++;
counter2++;
如果在每次迭代中打印出i
,就会看到它的值为1、3、5、7、9。
您几乎可以肯定不希望在循环正文中使用该i++;
语句。
实际上,我希望更改代码以完全删除counter2
,因为您希望在每次迭代中它都具有与i
相同的值:
for (int i = 1; i <= 10; i++) {
int product = num * i;
System.out.println(num + "x" + i + "=" + product);
}
答案 1 :(得分:4)
您的for循环中有“ i ++”,正在再次增加for循环。
答案 2 :(得分:2)
您两次使用i++
。一次进入循环,一次进入for
条件,这将使i
每次循环递增两次。
解决方案:从循环内部删除i++
。
此外,在此程序中根本没有理由使用counter2++
。不用num * counter2
,而要做num * i
,您将获得相同的结果,并且不需要所有多余的绒毛。
答案 3 :(得分:2)
这里:
for (int i = 1; i <=10; i++){
在这里:
i++;
您将在每个循环迭代中将我增加两次,因此,如果您的代码用尽,则只会得到预期循环用完的一半!
因此,您要么希望将循环限制加倍(10-> 20),要么更合理:将第二i++
放到循环主体中...