【发布时间】:2016-01-13 04:18:00
【问题描述】:
当以下代码出现在 cin 语句中时:如果我输入 -1,它仍然会运行在最后一个 else if 部分中找到的我的 invalidSelectorError()...即使该部分应该在 mainMenuSelector 等于时传递-1.
为什么??
(顺便说一句,在 invalidSelectorError() 运行后,包含所有内容的 while 循环正常工作,程序按预期终止。)
int mainMenuSelector;
while(mainMenuSelector != -1){
cout << "--- MAIN MENU -----------------" << endl;
cout << "[1] Create New Contact" << endl;
cout << "[2] View Existing Contacts" << endl;
cout << "[3] View or Edit Data Fields" << endl;
cout << "-------------------------------" << endl;
cout << "Or just press ENTER to quit." << endl;
cout << "-------------------------------" << endl;
cout << "Selection: ";
mainMenuSelector = -1;
cin >> mainMenuSelector;
cin.ignore();
if(mainMenuSelector == 1){
contactCreator();
}else if(mainMenuSelector == 2){
contactViewer();
}else if(mainMenuSelector == 3){
dataFieldViewer();
}else if(mainMenuSelector != 1 ||
mainMenuSelector != 2 ||
mainMenuSelector != 3 ||
mainMenuSelector != -1
){
invalidSelectorError();
}
}
return 0;
【问题讨论】:
标签: c++ if-statement int cin