Java For循环不循环。对于循环条件错误?

时间:2015-10-08 06:12:19

标签: java

我试图找出我需要为作业编写的代码部分中的问题。我在Java编码。我的代码中的所有内容都完美地工作,除了(我认为是)循环条件。

这段代码应该得到2个值a和b。 a表示应该执行循环的次数。 b指的是一个数字。因此,如果a = 5且b = 5,则输出应为:

5 x 1 = 5  
5 x 2 = 10  
5 x 3 = 15  
5 x 4 = 20  
5 x 5 = 25  

我会包含我的代码,如果有人可以帮我修改我的作业或告诉我我忽略了什么,那将是一个巨大的帮助。

import java.util.Scanner;

public class MaxMultiples {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter Maximum Number: ");
        int maxnum = sc.nextInt();
        System.out.print("Enter Multiplier: ");
        int mult = sc.nextInt();
        System.out.println("Displaying multiples of " + mult + ":");

        int current = 1;
        int result = 0;

        for (int counter = 0; counter == maxnum; counter++);
        {
            result = mult * current;
            System.out.println(mult + " x " + current + " = " + result);
            current++;
        }
    }
}

3 个答案:

答案 0 :(得分:5)

您有两个错误:

  1. 删除;,因为它结束了for循环(意味着你有一个空的for循环):

    for (int counter = 0; counter == maxnum; counter++);
                                                       ^
    
  2. 将停止条件从==更改为<<=,因为如果您将counter初始化为0,则永远不会执行循环并在它不等于maxnum时终止它(假设maxnum不是0)。

    for (int counter = 0; counter == maxnum; counter++);
                                  ^
    

答案 1 :(得分:0)

以下是工作代码,你做了两个错误,一个是for循环;并且for循环的条件应该是反制的

import java.util.Scanner;

public class MaxMultiples{

public static void main(String[] args)

{

    Scanner sc = new Scanner(System.in);
    System.out.print("Enter Maximum Number: ");
    int maxnum = sc.nextInt();
    System.out.print("Enter Multiplier: ");
    int mult = sc.nextInt();
    System.out.println("Displaying multiples of " + mult + ":");

    int current = 1;
    int result = 0;

    for (int counter = 0; counter < maxnum; counter++)
    {
        result = mult * current;
        System.out.println(mult + " x " + current + " = " + result);
        current++;

    }

}
}

答案 2 :(得分:0)

按如下方式更改你的for循环

 for (int counter = 1; counter <= maxnum; counter++)

    {

        result = mult * current;
        System.out.println(mult + " x " + current + " = " + result);
        current++;

    }
你正在使用; at for(int counter = 1; counter&lt; = maxnum; counter ++);意味着你在那一点终止它,这就是为什么它只执行一次