2017-02-11 3 views
0

Я благодарю вас за то, что вы нашли время, чтобы прочитать мою проблему. Извините, я просто начинающий программировать. По-видимому, я не так хорош в циклах, а если и в другом, и я не знаю, что не так в моем коде. когда я запускаю его и вводю «вверх», просто перейдите к (8,10). он должен был быть (0,1), тогда консоль спросит, в каком направлении они хотят идти снова. Заранее спасибо!!! : DC++ Моя программа находится в бесконечном цикле

#include<iostream>; 
#include<string>; 

using namespace std; 

int main() 
{ 
    int x = 0; 
    int y = 0; 
    string input; 

    cout << "objective: go to (8,9)" << endl; 
    cout << "current location (" << x << "," << y << ")" << endl; 

    while ((x = 8) && (y = 9)) 
{ 
    cout << "which way do you want to go?: "; 
    cin >> input; 

    if (input == "up") 
    { 
     ++y; 
     cout << "current location (" << x << "," << y << ")" << endl; 
     break; 

    } 
    else if (input == "down") 
    { 
     --y; 
     cout << "current location (" << x << "," << y << ")" << endl; 
     break; 
    } 
    else if (input == "right") 
    { 
     ++x; 
     cout << "current location (" << x << "," << y << ")" << endl; 
     break; 
    } 
    else if (input == "left") 
    { 
     --x; 
     cout << "current location (" << x << "," << y << ")" << endl; 
     break; 
    } 

} 

cout << "current location (" << x << "," << y << ")" << endl; 
cout << "Congratulations! You have reach your destination! :D" << endl; 


system("pause"); 
return(0); 

}

+1

Вы не должны использовать инструкции break, если вы не хотите выйти из окружающего цикла. – synchronizer

+0

спасибо, что я попытался удалить все перерывы, но он пошел прямо к «поздравлениям, вы добрались до места назначения», когда я попытался запустить его, и я меняю условие на (x == 8) && (y == 9) до сих пор нет улучшение. – user7524392

+0

Предлагаю добавить обновленный код. – synchronizer

ответ

0

"
Я попытался удалить весь перерыв, но он пошел прямо к" поздравлению! Вы должны добраться до места назначения «когда я попытался запустить его и изменить состояние к (х == 8) & & (у == 9) до сих пор нет улучшения. »

Вашего условия цикла является некорректным. Цикл while будет работать только , если x равно 8 и y равно 9. Они начинаются с 0 и 0 в начале программы, что объясняет, почему мы пропускаем цикл. Реальное условие: «запустить цикл, пока x и y равны , а не этих значений». while (x != 8 || y != 9) и поочередно поочередно: while (!(x == 8 && y == 9))

+0

О, боже мой! Я получаю это сейчас, когда цикл работает, поэтому я попробовал (x! = 8 || y! = 9), и он работает! : D, но я не понимаю, почему отрицательное число не появляется в консоли, оно пропускает все операторы if. – user7524392

+0

поочередно:! (X == 8 && y == 9) – synchronizer

+0

Спасибо! это действительно помогло мне много. :) – user7524392

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