(secret != guess) != заменяет оператору ==, как?

214
21 июля 2017, 03:47
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main ()
{
  int guess;
  srand ( time(NULL) );         // инициализация функции rand значением функции time
  int secret = rand() % 10 + 1; // сгенерировать секретное число
  do {
    cout << "otgadayte (ot 1 do 10): ";
    cin >> guess;
    if (secret < guess) cout << "sekretnoe chislo meshe\n";
    else
        if (secret > guess) cout << "sekretnoe chislo bolshe\n";
  } while (secret != guess);
  cout << "pozdravlyayu\n";
  return 0;
}

Программа хорошо работает (secret != guess) почему знак != (не ровен) меняет свое предназначение ведь в программе по логике сгенерированое число нужно чтобы совпадало с вводным числом, чтобы отображалось ПОЗДРАВЛЯЮ.

Обьясните ПЖ.

Answer 1

Не ясно, почему вы считаете, что "знак != меняет свое предназначение".

У вас в программе оператор != содержится только в условии цикла do/while. Этот цикл занимается запросом от пользователя очередного числа и проверкой его на правильность. Условие, указанное в части while(...) цикла do/while является условием продолжения выполнения цикла. Именно продолжения, как и во всех остальных типах циклов в С и С++.

То есть фактически условие secret != guess в этом цикле означает: если число не угадано, то продолжать выполнять цикл, т.е. продолжать запрашивать новые числа от пользователя.

Никакой "смены предназначения" тут нет.

READ ALSO
C++ Error E2293 )expected [требует правки]

C++ Error E2293 )expected [требует правки]

Какие бывают причины возникновения ошибки и как их решить? Пробавала подключить #include "vclh" проблемы не решило

187
Как в скрипте изменяющем ширину блоков по большему к результату добавить +1px

Как в скрипте изменяющем ширину блоков по большему к результату добавить +1px

Есть следующий скрипт изменяющий ширину определенных блоков на странице по большему:

285
цепочка вызовов в сокращенном виде

цепочка вызовов в сокращенном виде

доброго времени суток, есть куча кода с повторяющимися цепочками вызовов, есть ли какие нибудь способы сократить код подобным образом:slideUp()

273