Anshul verma Ответов: 2

Нечетное число между 'n' и 'm', Если n< m в противном случае печать "печать не может быть выполнена "


ВЫХОД ИЗ ПРОГРАММЫ НЕ ИДЕТ ПРАВИЛЬНО, ОН ПОКАЗЫВАЕТ 135. ЛЮБОЙ МОЖЕТ МНЕ ПОМОЧЬ . ВЫХОД ДОЛЖЕН БЫТЬ МЕЖДУ НЕТ, КОТОРОЕ ВЫ ВВЕЛИ, НО МОЙ ВЫХОД ИДЕТ ОТ 1 ДО M .

Что я уже пробовал:

import java.util.*;
public class amit7
{
    public static void main()
    {
        Scanner am=new Scanner(System.in);
        int n,m;
        System.out.println("Enter two no");
        n=am.nextInt();
        m=am.nextInt();
        if(n<m)
        {
        for(n;n<m;n++)
        {
            if (n%2!=0)
            
             System.out.print(n+"");
             
            } 
            System.out.println("");
        }
            else{ System.out.println("MESSAGE");
        }
    }

}

Richard Deeming

Java-это язык с учетом регистра, поэтому вам следует начать с покупки клавиатуры, где КАПС ЛОК ключ не застрял.

2 Ответов

Рейтинг:
1

CPallini

"Компилирующая" версия вашей программы

import java.util.*;
public class Foo
{
  public static void main(String args[])
  {
    Scanner am = new Scanner(System.in);
    int n,m;
    System.out.println("Enter two no");
    n = am.nextInt();
    m = am.nextInt();
    if( n < m )
    {
      for(; n < m; n++)
      {
        if ( n % 2 != 0)
          System.out.print( n + " ");
      }
      System.out.println("");
    }
    else
    {
      System.out.println("MESSAGE");
    }
  }
}
работает.

Пример выполнения:
java Foo
Enter two no
5
11
5 7 9 


Рейтинг:
0

OriginalGriff

Компиляция не означает, что ваш код верен! :смеяться:
Подумайте о процессе разработки как о написании электронного письма: успешная компиляция означает, что вы написали письмо на правильном языке - например, на английском, а не на немецком, - а не то, что письмо содержало сообщение, которое вы хотели отправить.

Итак, теперь вы входите во вторую стадию разработки (на самом деле это четвертая или пятая, но вы перейдете к более ранним стадиям позже): тестирование и отладка.

Начните с рассмотрения того, что он делает, и как это отличается от того, что вы хотели. Это важно, потому что это дает вам информацию о том, почему он это делает. Например, если программа предназначена для того, чтобы позволить пользователю ввести число, а затем удвоить его и напечатать ответ, то если бы ввод / вывод был таким:

Input   Expected output    Actual output
  1            2                 1
  2            4                 4
  3            6                 9
  4            8                16
Тогда совершенно очевидно, что проблема заключается в бите, который удваивает его - он не прибавляет себя к себе или умножает его на 2, он умножает его на себя и возвращает квадрат входного сигнала.
Таким образом, вы можете посмотреть на код, и очевидно, что он находится где-то здесь:
int Double(int value)
   {
   return value * value;
   }

Как только у вас появится идея, что может пойти не так, начните использовать отладчик, чтобы выяснить, почему. Поставить точку останова на строке:
for(n;n<m;n++)

и запустите свое приложение. Подумайте о том, что должна делать каждая строка кода перед ее выполнением, и сравните это с тем, что она на самом деле делала, когда вы использовали кнопку "Step over" для выполнения каждой строки по очереди. Он сделал то, что вы ожидали? Если да, то переходите к следующей строке.
Если нет, то почему? Чем это отличается?

Это навык, и его стоит развивать, поскольку он помогает вам как в реальном мире, так и в развитии. И, как и все навыки, он только улучшается при использовании!