2014-10-22 1 views
1

В заявлении говорится:кратные 7 между 98 и 266

Написать список кратные 7 между 98 и 266, как включая

Я ставлю этот код:

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 не запускается?

+2

Вы не инициализировали x. Вам нужно присвоить значение x. Целые значения не имеют значения по умолчанию, если только они не являются статическими членами класса. – Tetramputechture

+0

Кроме того, вы можете сделать статическую переменную 'x', в этом случае она будет автоматически инициализирована на' 0'. (Хотя, как отмечали другие, инициализация - лучший вариант.) –

+0

int x = 0; Затем x инициализируется –

ответ

1

Вы только объявили x, но не инициализировали его. Заполнено int x do int x = 0;. Замените 0 на нужное значение.

1

Вам нужно указать X начальное значение, или оно может также не существовать.

Например, если X должно начинаться с 0, то используйте:

int x = 0; 
2

Вы должны прочитать значение х или инициализировать его самостоятельно. Эта ошибка показана, потому что есть вероятность того, что программа может закончиться без инициализации x.

Просто инициализировать его:

int x = 0; 

или читать из сканера

x = entrada.nextInt(); 
2

В качестве альтернативы, вы можете использовать for цикл, который включает в себя инициализацию.

for (int x = 98; x <= 266; x++) { 
    if (x % 7 == 0) { 
     System.out.println(x); 
    } 
} 
0

вам необходимо инициализировать x поэтому он имеет начальное значение и не является пустым, когда ваши старты (int x = 98; программу входят). Кроме того, вы должны увеличивать x внутри вашего цикла While (x++; или вы будете иметь петли бесконечности всегда печати той же линии

int x = 98; 

entrada = new Scanner (System.in); 

while (x >= 98 && x <= 266) { 
    if (x % 7 == 0){ 
    System.out.println(x); 
    } 
    x++; 
} 
+0

Это должно быть 'x ++'; и нет необходимости проверять значение 'x> = 98' в состоянии while. –

+0

не может найти символ i –

+0

исправил свой ответ: с 'i' я имел в виду вашу переменную' x'. – Simulant

3

Для решения задан вопрос:.. Вам просто нужно инициализировать x, который в настоящее время неинициализированным Для инициализировать переменную, необходимо присвоить ему значение. Например x = 0;.

Однако, это еще не будет вызывать вашу программу для печати правильный результат.

Один из способов добиться того, что вы на самом деле хотите do - итерация число между 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 
} 
0

Это может быть одиночный цикл for. Инициализировать x на 98, приращение на 7 и остановиться, когда x больше, чем 266.Что-то вроде,

for (int x = 98; x <= 266; x += 7) 
    System.out.printf("%d = 7 * %d%n", x, x/7); 
Смежные вопросы