使用函数时,我得到的期望结果是:-
1)命令窗口要求我每次输入一次,因此我可以根据需要多次输入“ q”,甚至可以输入“ e”退出
2)每次我按'q'分数都会降低1
在没有功能的代码中会发生以下情况:-
1)我按“ q”,分数会无限期降低
2)输入“ q”后就无法再输入“ e”之类的输入
#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;
}
具有功能的代码2:-
#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'语句循环。因为函数中也有条件语句(切换语句),所以为什么函数不无限地降低分数或'n'的值呢?
答案 0 :(得分:1)
我在第一个代码(没有函数)中发现了我的错误,cin>>
语句应该位于do
-while
循环内,以便在每次循环输入后都被请求。