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

时间:2017-05-09 10:28:56

标签: java math operators counter

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

例如:用户输入3,我需要输出为" 7,14,21和#34;。

目前,如果我输入一个小于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) + " ");
            }       
        }
    }        
}

4 个答案:

答案 0 :(得分:3)

不要在这里过度思考循环。作为替代方案,两者都意味着您可以委派%支票,请考虑

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

或者,由于您必须在三个位置写7而不那么优雅

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

答案 1 :(得分:0)

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

if(j % 7 == 0){

%是模运算符。 它说:如果我将数字计算到(j)的数字没有提醒,如果我将其除以7,则执行括号内的操作。

所以你需要做的是计算输入的数字(使用for循环)并打印当前数字的多次复制7次。

答案 2 :(得分:0)

它没有打印任何内容,因为当您输入的数字小于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) + " ");
        }
    }

答案 3 :(得分:0)

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 + " ");
        }        
    }
}

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