声明说:
在98和266之间写一个7的倍数列表 包括
我把这段代码:
import java.util.*;
public class Multiples7 {
public static void main (String[] args) {
Scanner entrada;
int x;
entrada = new Scanner(System.in);
while (x >= 98 && x <= 266) {
if (x % 7 == 0){
System.out.println(x);
}
}
}
}
我得到了这个我不明白的错误: 变量x可能尚未初始化
为什么x无法启动?
答案 0 :(得分:3)
要解决问题:您只需要初始化x
,这是当前未初始化的。要初始化变量,必须为其赋值。例如x = 0;
。
但是,这仍然不会导致程序打印出正确的结果。
实现你真正想做的事情的一种方法是迭代98到266之间的数字,当它们被7整除时,将它们打印出来。
for(int y = 98; y <= 266; ++y) if (y % 7 == 0) System.out.println(y);
交替地,您可以从98(14 * 7)开始,然后将其递增7,随时打印。
int y = 98;
while(y <= 266) {
System.out.println(y);
y+=7
}
答案 1 :(得分:2)
您需要读取x的值或自己初始化它。显示此错误是因为程序可能在没有初始化x的情况下结束。
刚刚初始化它:
int x = 0;
或从扫描仪读取
x = entrada.nextInt();
答案 2 :(得分:2)
或者,您可以使用for
循环,其中包括初始化。
for (int x = 98; x <= 266; x++) {
if (x % 7 == 0) {
System.out.println(x);
}
}
答案 3 :(得分:1)
您只声明了x
但未初始化它。而不是int x
做int x = 0;
。将0
替换为所需的值。
答案 4 :(得分:1)
你需要给X一个起始值,否则它可能不存在。
例如,如果X应该从0开始,那么使用:
int x = 0;
答案 5 :(得分:0)
您需要初始化x
,因此它有一个起始值,并且在您的程序启动时不为空(int x = 98;
)。此外,您应该在while循环中增加x
(x++;
,否则您将有一个无限循环始终打印同一行。
int x = 98;
entrada = new Scanner (System.in);
while ( x >= 98 && x <= 266) {
if (x % 7 == 0){
System.out.println(x);
}
x++;
}
答案 6 :(得分:0)
它可能是一个for
循环。在98处初始化x
,按7
递增,并在x
大于266
时停止。像,
for (int x = 98; x <= 266; x += 7)
System.out.printf("%d = 7 * %d%n", x, x / 7);