Использование цикла for для печати чисел

#java #for-loop

#java #цикл for

Вопрос:

Я пытаюсь написать программу, которая печатает все числа от 0 до 1000, где число mod 5 = 3. Это то, что у меня есть на данный момент

 public class NewMain {
public static void modNumbers(int i)
{

}

public static void main(String[] args) {

    for(int i = 0; i > 1000; i  )
    {
        if(i%5 = 3)
        {
        System.out.println(i);
        }
    }

 }
}
  

Я не получаю никаких выходных данных, поэтому я знаю, что делаю что-то не так. Должен ли я указывать возвращаемый тип в методе?

Комментарии:

1. вы, вероятно, хотите, чтобы значение double равнялось, == в вашем if наряду с другими исправлениями

2. Простые синтаксические ошибки.. > в < и = в == или даже ===

3. Это вообще компилируется? Это должно быть if(i%5 == 3).

4. Опубликуйте ответ, который помог в решении вашей проблемы, и пометьте его как решенный.

Ответ №1:

Измените его с:

 for (int i = 0; i > 1000; i  )
  

Для

 for (int i = 0; i < 1000; i  )
  

По сути, цикл никогда не начинается, потому что инвариант цикла равен false (поскольку i меньше 1000), и ваша инструкция print никогда не выполняется, потому что цикл никогда не инициализируется.

Кроме того, как упоминалось в WTP, используйте == для числовых сравнений (важным примечанием является то, что вы используете string1.equals(string2) или compareTo со строками, просто для вашего дальнейшего использования).

Ответ №2:

for(int i = 0; i < 1000; i )

Ответ №3:

Вот что вам нужно сделать:

  1. Изменение i > 1000 на i <= 1000 as i начинается с 0 и увеличивается до 1000.
  2. Измените i%5 = 3 на i%5 == 3 , поскольку первый выполняет присваивание, а второй сравнивает на равенство.

Ответ №4:

 if(i%5 == 3)
  

single = используется для присвоения

Ответ №5:

Это:

 if(i%5 = 3)
  

Должно быть так:

 if(i%5 == 3)
  

Вы пытаетесь установить что-то вместо сравнения.

Ответ №6:

Еще одна маленькая деталь:

 i%5 = 3
  

должно быть

 i%5 == 3
  

Ответ №7:

Необходимо изменить > в вашем операторе for на <, а также = в вашем операторе if является оператором присваивания. Используйте оператор сравнения == или === … Надеюсь, это поможет. 🙂

Комментарии:

1. К вашему сведению === не существует в java

Ответ №8:

for (int i = 0; i < 1000; i )

Ответ №9:

У вас две проблемы:

1.

 for(int i = 0; i > 1000; i  )
  

Цикл for запускается только тогда, когда значение i больше 1000, но начальное значение для i меньше тысячи. Код не будет работать.

2.

 if(i%5 = 3)
  

Вам нужно, чтобы это имело два знака равенства, чтобы оно стало оператором, возвращающим значение true или false. После внесения исправлений ваш код будет выглядеть следующим образом:

 for(int i = 0; i < 1000; i  )
{
    if(i%5 == 3)
    {
    System.out.println(i);
    }
}