Когда я использую функции, я получаю желаемый результат, который: -
1) Окно команд просит меня вводить каждый раз, чтобы я мог вводить 'q' столько раз, сколько захочу, и могу даже введите 'e' для выхода
2) Каждый раз, когда я нажимаю 'q', оценка уменьшается на 1
, тогда как в коде без функций происходит следующее: -
1) Я нажимаю 'q', и счет продолжает уменьшаться бесконечно
2) Невозможно ввести другой ввод, такой как 'e', после ввода 'q'
#include<iostream>
using namespace std;
int main()
{
char h;
cin>>h;
int n = 10;
do{
system("cls");
cout<<"score is"<<n;
if(h == 'q')
{
n=n-1;
}
}while(h != 'e');
return 0;
}
CODE 2 с помощью FUNCTION: -
#include<iostream>
using namespace std;
char input;
int n = 10;
bool over = false;
void ip()
{
system("cls");
cout<<"score is"<<n;
cin>>input;
switch(input)
{
case 'q':
n--;
break;
case 'e':
over = true;
break;
}
}
int main()
{
do{
ip();
}while(!over);
return 0;
}
Пожалуйста, объясните мне, как программа циклически выполняет функцию и как она выполняет только оператор IF. Поскольку в функции также есть оператор условия (оператор switch), почему же функция не уменьшает счет или значение 'n' бесконечно ??