выход из цикла while с отрицательным целым числом - PullRequest
0 голосов
/ 14 октября 2011

Я хочу выйти из while(), когда пользователь вводит отрицательное число любого размера. Какие условия мне понадобятся в начале цикла, чтобы завершить цикл при вводе пользователем отрицательного числа?

Ответы [ 4 ]

1 голос
/ 14 октября 2011
int i = -1;
do
{
    i = magic_user_input();
    //simple enough? get a decent programming book to get the hang of loops
}
while(i > -1)

edit: извините, моя ошибка: 'i' не был объявлен должным образом :) теперь должно быть хорошо использовать

1 голос
/ 14 октября 2011

Ну, что такое отрицательное число?Это число (назовите его x), которое меньше нуля, или символически, x < 0.Если x меньше нуля, тогда это правда.Если нет, то это неверно.

Вы можете бесконечно зацикливаться и прерывать при выполнении этого условия:

while (1) {
  if (x < 0) {
    break;
  }

  ...
}

Но я предпочитаю просто использовать противоположное этому условию в while Сам цикл:

 while (x >= 0) {
   ...

Если условие истинно, цикл продолжается.Когда оно ложно (и ваше исходное условие истинно, так как эти два противоположны), цикл прерывается.

1 голос
/ 14 октября 2011

Используйте условие if, чтобы узнать, что число меньше 0 или нет. И если да, просто используйте оператор break внутри него, который выведет вас из цикла. Подробнее об операторе перерыва в MSDN.

0 голосов
/ 14 октября 2011

Не определяйте вашу переменную как переменную без знака.Как предлагается в других ответах, используйте оператор if и разрывайте с оператором if.

пример:

int main(void)
{
 int i;
 while(1){
 /*here write an statement to get and store value in i*/ 
  if(i<0)
  {
    break;
  }
 /*other statements*/
  return(0);
  }
 } 
...