大家好我正在尝试为do while语句添加多个条件,其代码如下所示
do
( switch case menu)
while(choice!='X' && (NetworkPacket= 50; printf("No more network packets can be added")));
基本上,(某些代码)部分是一个菜单系统,它要求用户添加数据包,然后选择!='x'允许用户通过按x退出程序。但是由于菜单允许它们循环,我希望程序还限制用户添加超过50个数据包因此网络数据包int = 50然后它说不能再添加数据包但这似乎不起作用。
答案 0 :(得分:3)
在风格上,如果while
语句只有逻辑,并且printf
之类的操作在外面,那么代码将更容易阅读。您可以将这些部分分开:
#define PACKET_LIMIT 50
do {
(switch case menu)
//presumably NetworkPackets is being updated in here too
} while ((choice != 'X') && (NetworkPackets < PACKET_LIMIT));
//now check why we exited
if (NetworkPackets >= PACKET_LIMIT) {
printf("No more network packets can be added");
}
在循环逻辑中使用< PACKET_LIMIT
允许循环体可能添加多个数据包的情况。
答案 1 :(得分:1)
试试这个
do
{
(switch case menu)
NetworkPacket++;
}
while(choice!='X' && (NetworkPacket >= 50? printf("No more network packets can be added" ),0 : 1));