在98和266之间的7的倍数

时间:2014-10-22 15:51:51

标签: java

声明说:

在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无法启动?

7 个答案:

答案 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 xint x = 0;。将0替换为所需的值。

答案 4 :(得分:1)

你需要给X一个起始值,否则它可能不存在。

例如,如果X应该从0开始,那么使用:

int x = 0;

答案 5 :(得分:0)

您需要初始化x,因此它有一个起始值,并且在您的程序启动时不为空(int x = 98;)。此外,您应该在while循环中增加xx++;,否则您将有一个无限循环始终打印同一行。

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);