Еще один пример использования оператора if с анализом
1. #include <iostream> 2. using namespace std; 3. 4. int main(int argc, char* argv[]) 5. { 6. int MetsScore, YankeesScore; 7. cout << "Enter the score for the Mets: "; 8. cin >> MetsScore; 9. cout << "\nEnter the score for the Yankees: "; 10. cin >> YankeesScore; 11. cout << endl; 12. if (MetsScore > YankeesScore) 13. cout << "Let's Go Mets!\n"; 14. if (MetsScore < YankeesScore) 15. { 16. cout << "Go Yankees!\n"; 17. } 18. if (MetsScore == YankeesScore) 19. { 20. cout << "A tie? Naah, can't be.\n"; 21. cout << "Give me the real score for the Yanks: "; 22. cin >> YankeesScore; 23. if (MetsScore > YankeesScore) 24. cout << "Knew it! Let's Go Mets!"; 25. if (YankeesScore > MetsScore) 26. cout << "Knew it! Go Yanks!"; 27. if (YankeesScore == MetsScore) 28. cout << "Wow, it really was a tie!"; 29. } 30. cout << "\nThanks' for telling me.\n"; 31. return 0; 33. } Анализ В этой программе пользователю предлагается ввести счет очков для двух бейсбольных команд; счет сохраняется в целочисленных переменных MetsScore и YankeesScore. Значения этих переменных сравниваются оператором if в строках 12, 14 и 18. Если количество очков одной команды больше суммы очков другой, на экран выводится соответствующее сообщение. Если количество очков одинаково, программа выполняет блок выражений, который начинается в строке 19 и оканчивается в строке 29. В этом блоке счет снова запрашивается и сравнивается. Обратите внимание: если начальный счет Yankees превышает счет Mets, то оператор if в строке 12 возвратит значение false, а строка 13 выполняться не будет. В результате проверки в строке 14 будет возвращено значение true и выполнено выражение в строке 16. Затем с помощью оператора if в строке 18 будет проверено равенство очков и, если результат этой проверки вернет значение false (иначе и быть не может, поскольку проверка в строке 14 вернула значение true), то программа пропустит целый блок и сразу перейдет к выполнению строки 30. В данном примере истинный результат одного оператора if не избавляет от проверки результатов других операторов if. Обратите внимание на выражения первых двух операторов if (строки, выводящие на экран сообщения "Let' s Go Mets! " и "Go Yankees! "). В данном случае (в строке 13) выполняемый блок не взят в фигурные скобки преднамеренно, поскольку блок, состоящий из одной строки, в них не нуждается. Но и фигурные скобки тоже допустимы, они использованы в строках 15—17.
|