2013-12-13 3 views
-1

Недавно я попытался написать программу, которая выводит LCM двух чисел, помещенных в параметр. И хотя у меня к счастью нет ошибок компиляции, я не получаю правильный ответ. Я использовал вложенный цикл ifs in for, и я не мог найти проблему ... вы можете мне помочь? Я в целом смущен концепцией i ++. Спасибо.Я так запутался в отношении циклов в Java

Вот что я написал для своего класса LCM.

public class LCM { 
    public static int calcLCM(int num1, int num2) { // num1=10, num2=4; their 
                // LCM is 20 
     // num1 has to be greator than num2 
     int multiple = 0; 
     for (int i = 1; i == num1; i++) { 
      if (num2 == num1) { 
       multiple = num2; 
      } 

      else if (num2 * i > num1) { 
       i++; 
       num1 = num1 * i; 
      } 

      else if (num2 * i < num1) { 
       i++; 
       num2 = num2 * i; 
      } 

     } 
     return multiple; 
    } 

} 
+0

Нет 'main()' для вашего класса? –

+0

В будущем у вас должен быть более тщательный, продуманный и исследуемый вопрос. Что смущает вас ** конкретно **? Какой номер строки? Какое утверждение (и)? Пожалуйста, помогите нам помочь вам – OneChillDude

ответ

6

Изменение for(int i=1;i==num1;i++) к for(int i=1;i<=num1;i++).

for цикла в текущем коде выполняется только при i == num1

0

Цикл будет работать только в том случае i==num1 Аки num1==1.

Попробуйте for(int i=1;i<=num1;i++)

2
for(int i=0;i<10;i++) 
{ 
System.Out.Println(i); 
System.Out.Println("\n"); 
} 

// Этот цикл выполнения в 10 раз

1

я ++ средства, мы используем INT I, как в уравнении/условия, то увеличиваем его на единицу. , например,

int i = 1; 
int j = (i++) + 3; 
System.out.println(j); 
System.out.println(i); 

Выход

4 
2 

J будет 4, так как он будет использовать I, как это (1 + 3), то было бы приращение я так, что я бы тогда 2 .

в цикле есть три части

для (часть 1, часть 2, часть 3)

  • часть 1 является начальным, а это означает, что происходит только один раз в начале
  • часть 2 является условие, которое проверяется перед каждым выполнением. Если условие истинно, выполняется код в теле. Если ложно, то она будет ломаться из петли
  • часть 3 представляет собой код, который выполняется каждый раз после кода в теле цикла выполняется

Theres другой цикл, который может быть использован для массивов и т. д. с помощью итераторов, но вы можете получить его позже.

0
public class LCM  
{ 
public static int calcLCM(int num1, int num2) 
{ 
//num1=10, num2=4; their LCM is 20 
//num1 has to be greator than num2 
int i=1; 
while((num1*i)%num2!=0) 
{ 
i++; 
} 
return num1*i; 
} 
Смежные вопросы