C++ while循环中的if/else格式 while(true) { 您必须将语句括在括号内的if和else之间{..}

C++ while循环中的if/else格式 while(true) { 您必须将语句括在括号内的if和else之间{..},c++,block,if-statement,braces,C++,Block,If Statement,Braces,您需要在此处添加括号: while(true) { cout << "Name: "; getline(cin, Name); if(Name == "Stop") break; cout << "Additional Name - Y/N: "; getline(cin, additional); if (additional == "Y") cout << "Additional Name: "; getl

您需要在此处添加括号:

while(true)
{ 
  cout << "Name: ";
  getline(cin, Name);
  if(Name == "Stop")
    break;

  cout << "Additional Name - Y/N: ";
  getline(cin, additional);
  if (additional == "Y") 
    cout << "Additional Name: ";
  getline(cin, Name2);
  else
    cout << "Location: ";
  getline(cin, Location);
  if(Location == "Stop")
    break;
}


chief.cpp: In member function ‘void BookList::Fill()’:
chief.cpp:128: error: ‘else’ without a previous ‘if’
if(附加==“Y”)

cout您需要将
if
主体括在大括号中以消除错误。从外观上看,您还需要将
else
主体括在大括号中:

if (additional == "Y") 
{
     cout << "Additional Name: ";
     getline(cin, Name2);
}
// You could have an else here, but that would make location only happen if "additional" was not "Y"

 cout << "Location: ";
 getline(cin, Location);
if(附加==“Y”){

cout当块正好包含一条语句(以分号(
)结尾的语句)或另一条带块的语句(
if
for
while
等)时,只能丢弃块周围的大括号(
{
}

例如,您可以执行以下操作:

if (additional == "Y") {
  cout << "Additional Name: ";
  getline(cin, Name2);
 } else {
  cout << "Location: ";
  getline(cin, Location);
 }
甚至

while (true)
    if (foo) {
        printf("Hello, ");
        printf("world\n");
    }

如果您在清单上指明了第128行,这将非常有用,尽管您确实得到了有用的答案。
while (true)
    if (foo) {
        printf("Hello, ");
        printf("world\n");
    }
while (true)
    if (foo)
        for (i = 0; i < 10; i++) {
            printf("Hello, ");
            printf("World!\n");
        }
if (additional == "Y") {
   cout << "Additional Name: ";
   getline(cin, Name2);
}
else {
   cout << "Location: ";
   getline(cin, Location);
}