我如何重播我的主要功能? (阅读说明,难以标题)

时间:2015-10-01 19:36:51

标签: c++ loops

我提前为这个误导性的标题道歉,我不确定如何在没有更多空间的情况下说出我的问题。我将首先向您展示我的主要功能。

int main() {
    int input;
    List List;
    cout << "Press '1' to add a node" << endl;
    cout << "Press '2' to view the list of nodes" << endl;
    cin >> input;
    if (input == 1) {
    List.addNode();
    }
    else if (input == 2) {
    List.PrintList();
    }    
}

因此,您可以看到主要功能的性质,用户将要输入多个节点(输入1)。现在,如果我输入节点,程序结束。在一个完美的程序中,我希望能够允许用户输入任意数量的数据点,并且能够打印出来。这两个函数现在基本没用,因为需要多个数据点以及用户想要重新打印它们输入的点。

将描述排除在外:我的问题是如何让主要功能重播?感谢您提前帮助。

4 个答案:

答案 0 :(得分:3)

你真正想要的是一直在计算机科学中发生的转变。你需要稍微修改你的代码,你已经有效地超越了你的主要功能。是时候重新编写代码了。

std::vector<std::array<int, 2>> aVector;

for (unsigned int i = 0; i < 100; i += 10) {
    for (unsigned int j = 0; j < 100; j += 3) {
        aVector.push_back({{i, j}});
    }
}

根据程序的完全开发方式,您可能希望循环使用main,或者您可能希望在新函数中执行循环或其他任何操作。您必须根据自己的功能决定架构的这一部分。

祝你好运!

答案 1 :(得分:1)

为什么不把它推到一个while循环中呢?

int main() {
   int input = 0;
   List nodeList;

   /*Loop till user chooses to exit.*/
   while(input != 3)
   {
      /*Display options for user and take output.*/
      cout << "Press '1' to add a node" << endl;
      cout << "Press '2' to view the list of nodes" << endl;
      cout << "Press '3' to exit" << endl;
      cin >> input;

      /*Add a node to list.*/
      if (input == 1) {
          nodeList.addNode();
      }

      /*Display node list.*/
      else if (input == 2) {
          nodeList.PrintList();
      } 

      /*Exit program.*/
      else if (input == 3) {
          return 0;
      }

      /*Re-prompt user to input again.*/
      else {
         cout << "Invalid input.. try again." << endl;
      }
   }
   /*Won't reach.*/
   return 0;
}

答案 2 :(得分:0)

for 循环将重复多次。

int i=0;
for (i=0;i<10;i++){
   // do something 10 times
}

如另一个答案所述,while循环也很棒。

答案 3 :(得分:0)

使用带有附加cout的do-while循环&lt;&lt;“按3退出”。将所有的couts,if-else包含在do-while中以便能够循环直到用户点击3.在while条件下,设置while(输入!= 3)。