我是c ++的初学者。我正在学习这种语言的abc ..我创建了这个小程序,它将添加:
#include <iostream>
using namespace std;
float add(float a, float b){
return a+b;
}
int main(){
float num1;
float num2;
cout<<"add...enter digits \n";
cout<<"first digit: ";
cin>>num1;
cout<<"\n Second number: ";
cin>>num2;
cout<< "your sum is: "<<add(num1, num2)<<endl;
system("pause");
}
以上代码是我第一个可用的c ++应用程序
现在我想要当有人想再次添加然后这个程序再次开始...我想使用循环,我但不能想如何以这种方式使用。我的意思是我应该使用什么条件。
请告诉我
感谢。
答案 0 :(得分:3)
如果我们从字面上开始“从头开始”,我们可以在结束时再次致电main()
!
#include <iostream>
using namespace std;
float add(float a, float b){
return a+b;
}
int main(){
float num1;
float num2;
cout<<"add...enter digits \n";
cout<<"first digit: ";
cin>>num1;
cout<<"\n Second number: ";
cin>>num2;
cout<< "your sum is: "<<add(num1, num2)<<endl;
system("pause");
return main(); // <---- starts again from beginning of main()!!
}
(当程序耗尽堆栈空间时,这最终会崩溃,但是用户几乎肯定会厌倦在此之前添加数字。当然,一个聪明的编译器会意识到这是尾递归,并使用{{ 1}}而不是函数调用。)
答案 1 :(得分:3)
以下是我们的工作方式:
#include <iostream>
using namespace std;
float add(float a, float b){
return a+b;
}
int main(){
float num1;
float num2;
while(true)
{
cout<<"add...enter digits \n";
cout<<"first digit: ";
cin>>num1;
cout<<"\nSecond number: ";
cin>>num2;
cout<< "your sum is: "<<add(num1, num2)<<endl;
char ch = 'n';
cout << "Start Again, [y/n] ? ";
cin >> ch;
if (ch == 'Y' || ch == 'y')
continue;
else
break;
}
return 0;
}
答案 2 :(得分:2)
您可以尝试将“添加”的主要部分放在无限循环中。 我建议使用一个后置条件循环,意味着一个将至少执行一次它的身体(然后它将检查条件等等),因为你将要至少添加一些数字。
示例:
do {
// do stuff here
} while (true) // always true condition -> makes the loop infinite
所以我想你会问你怎么阻止这个。您可以询问用户是否要继续。 将其添加到循环体中:
int lock = 0;
cout << "Do you want to continue? (0 = no, 1 = yes)" << endl;
cin << lock;
if (lock == 0) break; // stops the loop immeadiately
你可以使用值为'y'或'n'的锁定为char。
答案 3 :(得分:2)
由于您正在开始,我建议您稍微更改一下代码:
#include <iostream>
using namespace std;
float add(float a, float b)
{
return a+b;
}
// Function that does the core work.
void read_input_print_sum()
{
float num1;
float num2;
cout<<"add...enter digits \n";
cout<<"first digit: ";
cin>>num1;
cout<<"\n Second number: ";
cin>>num2;
cout<< "your sum is: "<<add(num1, num2)<<endl;
}
int main()
{
read_input_print_sum();
system("pause");
}
现在,您可以添加各种方法来重复调用核心功能。 Rakibul Hassan在答案中提出了一个建议。
可以通过以下方式实现:
int main()
{
while (true)
{
read_input_print_sum();
}
system("pause");
}
另一种方式:询问用户是否想再次工作。
bool getRepeat()
{
cout << "Do you want to repeat? (Y/N): ";
int yesno = cin.getc();
return ( yesno == 'Y' || yesno == 'y' );
}
int main()
{
bool repeat = true;
while (repeat)
{
read_input_print_sum();
repeat = getRepeat();
}
system("pause");
}
另一种方式:在开始之前询问他们希望重复计算的次数。
int main()
{
int N = 0;
cout << "How may times do you want to add numbers: ";
cin >> N;
for ( int i = 0; i <= N; ++i )
{
read_input_print_sum();
}
system("pause");
}
答案 4 :(得分:1)
以下代码将执行此操作:
#include <iostream>
using namespace std;
float add(float a, float b){
return a+b;
}
int main(){
float num1;
float num2;
while( true ){
cout<<"add...enter digits \n";
cout<<"first digit: ";
cin>>num1;
cout<<"\n Second number: ";
cin>>num2;
cout<< "your sum is: "<<add(num1, num2)<<endl;
}
system("pause");
}
上面的代码将永远运行。如果要为用户提供选择,请应用循环中断条件。
char repeat = 'y';
while( repeat == 'y'){
// do as previous
//.....
//finally give user a choice
cout<< "Do you want to repeat?(y/n):";
cin>> repeat;
}
system("pause");
}
答案 5 :(得分:0)
只需调用main();再次.. 在你的代码中将是这样的:
#include <iostream>
using namespace std;
float add(float a, float b){
return a+b;
}
int main(){
float num1;
float num2;
cout<<"add...enter digits \n";
cout<<"first digit: ";
cin>>num1;
cout<<"\n Second number: ";
cin>>num2;
cout<< "your sum is: "<<add(num1, num2)<<endl;
main();
}