我正在尝试制作一个模拟杂货店故事线的程序。如果输入 a,它允许用户添加名称。如果输入 c,它会模拟一个人离开线路。如果输入 p,它会打印名称列表。如果输入 q,则退出。
我的代码只会导致无限循环,我不知道为什么。每次我尝试输入值时,它只会读取无效输入并且不会退出。我不确定其他东西是否有效,但这不是我需要帮助的。
$choice="";
$name;
@line=();
print "\n";
print "Choose an option:\n";
print "a: Add person to end of line\n";
print "c: Call the next person in line\n";
print "p: Print the list of people in line\n";
print "q: Quit\n";
print "\n";
while ($choice ne "q") {
print "Your choice:";
$choice = <>;
print "\n";
if($choice eq "a") {
print "Enter name:";
$name = <>;
push(@line,$name);
}
elsif ($choice eq "c") {
shift(@line);
}
elsif ($choice eq "p") {
for ($i=0;$i<=scalar(@line);$i++) {
print (@line[$i]);
}
}
elsif ($choice eq "q") {
exit;
}
else {
print "Invalid option";
}
}