2011-03-17 5 views
0

По какой-то причине метод класса getTime() не будет выводить на экран консоли время. Где я неправ?Метод класса не отображает результаты

+0

«Console.WriteLine (« Heloo »);' вывод на консоль? – climbage

+0

@Stainless: Вы пробовали 'Console.WriteLine (h)'? – Marnix

+0

@climbage Да. Вызов Heloo, но если я поместил его после создания объекта и метода get, он этого не сделает. @Marnix Nope. @jsmith Nope. – Stainless

ответ

2

Циклы while в парах никогда не возвращаются. Попробуйте

 private void setM(int minutes) 
     { 
      while (minutes > 59) 
      { 
       h++; 
       minutes-=60; 
      } 
      m = minutes; 
     } 

и

 private void setS(int seconds) 
     { 
      while (seconds > 59) 
      { 
       m++; 
       seconds-=60; 
      } 
      s = seconds; 
     } 
+0

Да, это моя первая итерация из этих методов выглядели, но я даже не тестировал их «упростить». Спасибо. – Stainless

4

Ваши методы набора имеют бесконечный цикл!

private void setM(int minutes) 
{ 
    while (minutes > 59) 
    { 
     h++; 
     m = minutes - 60; 
    } 
} 

Когда этот метод остановится?

+0

Вы правы. Исправлено. Но, сначала не оценивается правая сторона, иначе вычитается минута, а затем присваивается m. менее 59. Что я пропустил? – Stainless

+0

@Stainless: Нет, потому что вы проверяете «минуты», но «минуты» никогда не меняются. Вы сохраняете '(минуты - 60)' в 'm'. Но' minutes' будет Вы должны сказать: 'minutes = minutes - 60', как предлагает StackOverflowException. Когда вы закончите с вашим циклом while, вы можете установить' m = minutes', чтобы остальные минуты были установлены в 'm'. – Marnix

Смежные вопросы