我提前为这个误导性的标题道歉,我不确定如何在没有更多空间的情况下说出我的问题。我将首先向您展示我的主要功能。
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)。现在,如果我输入节点,程序结束。在一个完美的程序中,我希望能够允许用户输入任意数量的数据点,并且能够打印出来。这两个函数现在基本没用,因为需要多个数据点以及用户想要重新打印它们输入的点。
将描述排除在外:我的问题是如何让主要功能重播?感谢您提前帮助。
答案 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)。