接受用户输入并根据该数字列出 7 的倍数的程序 (Java)

Program that takes user input and lists multiples of 7 according to that number (Java)

这是我创建一个程序的代码,该程序接受用户输入并列出与该数字相关的 7 的倍数。

例如:用户输入3,我需要输出为“7,14,21”。

目前,如果我输入一个小于 7 的数字,程序不会打印输出,但只要我输入 7 或任何大于 7 的数字,程序就会编译并打印我需要的内容。

所以我需要解决的问题是能够输入小于 7 的数字并接收正确的输出。

提前致谢!

import java.util.Scanner;

public class MultiplesOfSeven {

  public static void main(String[] args){
    int j = 0;

    Scanner scan = new Scanner(System.in);
    int n = scan.nextInt();

    for(j = 1; j <= n; j++){
        if(j % 7 == 0){
            System.out.print(j + " ");

            for (int counter = 0 ; counter < n ; counter++) {
                System.out.print(j*(2 + counter) + " ");
            }       
        }
    }        
}

不要想太多这里的循环。作为替代方案,两者都意味着您可以委托 % 检查,请考虑

for (j = 0; j < n; ++j){
    // output (j + 1) * 7;
}

或者,由于您必须在 三个 地方

7,因此不太优雅
for (j = 7; j <= n * 7; j += 7){
    // output j
}

当您输入小于 7 的数字时,此代码会阻止您的程序打印任何内容:

if(j % 7 == 0){

% 是模运算符。 上面写着:如果我数到(j)的数除以7没有提示,就按括号里的做。

所以你要做的是计算输入的数字(使用 for 循环)并打印当前数字乘以 7 的乘积。

它没有打印任何东西,因为当您输入的数字小于七且大于零时,里面的代码

if(j%7==0)

没有执行。我想你的代码应该是这样的。

for (j = 1; j <= n; j++) {
        if (j % 7 == 0) {
            System.out.print(j + " ");
        }
        for (int counter = 0; counter < n; counter++) {
            System.out.print(j * (2 + counter) + " ");
        }
    }
import java.util.Scanner;
public class MultiplesOfSeven {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        for(int j = 1; j <= n; j++) {
            System.out.print(7*j + " ");
        }        
    }
}

这是您问题的简单解决方案。这将适用于所有情况。保持代码简单祝你好运。