我不明白,我有一个switch语句,提示用户创建动态分配的内存,显示所有列表,最后删除它们(案例3,打印在下面。)
当我在程序中选择案例3并输入除' y'以外的任何内容时或者' Y'它仍然删除列表,我不明白为什么......
如果有人可以帮助我,我真的很感激:
case 3:
cout << "Which list did you want to delete?" << endl
<< "List: ";
cin >> i;
i--;
if (dynArray[i] == NULL){
noListExist();
break;
}
else
printoutAllLists(dynArray[i], arraySize[i], i);
cout << "Are you sure? ('y' or 'n'):" << endl
<< "Confirm: ";
cin >> j;
if (j == 'y' || 'Y'){
delete[] dynArray[i];
dynArray[i] = NULL;
}
else
break;
break;
答案 0 :(得分:3)
if (j == 'y' || 'Y')
始终为true,因为||
的右侧即'Y'
为非零,当j
不等于'y'
时会对其进行评估
使用:
if (j == 'y' || j== 'Y')
可能会有更多错误,也有内存泄漏的可能性
答案 1 :(得分:1)
在第一个else之后还需要{...}来定义else语句的范围。现在,你的else语句中只有一行。