如何从程序的开始

时间:2014-04-27 04:19:57

标签: c++

我是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 ++应用程序

现在我想要当有人想再次添加然后这个程序再次开始...我想使用循环,我但不能想如何以这种方式使用。我的意思是我应该使用什么条件。

请告诉我

感谢。

6 个答案:

答案 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();
}