do while循环,添加多个条件

时间:2013-12-16 23:05:44

标签: c do-while

大家好我正在尝试为do while语句添加多个条件,其代码如下所示

do

 ( switch case menu)

while(choice!='X' && (NetworkPacket= 50; printf("No more network packets can be added")));

基本上,(某些代码)部分是一个菜单系统,它要求用户添加数据包,然后选择!='x'允许用户通过按x退出程序。但是由于菜单允许它们循环,我希望程序还限制用户添加超过50个数据包因此网络数据包int = 50然后它说不能再添加数据包但这似乎不起作用。

2 个答案:

答案 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));