这是我创建程序的代码,该程序接受用户输入并列出与该数字相关的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) + " ");
}
}
}
}
答案 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 + " ");
}
}
}
这是您问题的简单解决方案。这适用于所有情况。保持代码简单好运。