C 执行while循环,添加多个条件

C 执行while循环,添加多个条件,c,do-while,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个数据包,因此网络数据包

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

do

 ( switch case menu)

while(choice!='X' && (NetworkPacket= 50; printf("No more network packets can be added")));
基本上,(一些代码)部分是一个菜单系统,要求用户添加数据包,然后选择!='x'允许用户按x退出程序。但由于菜单允许他们循环,我希望程序也限制用户添加超过50个数据包,因此网络数据包int=50,然后它说不能添加更多数据包,但这似乎不起作用

试试这个

do
{
     (switch case menu)
     NetworkPacket++;
}

 while(choice!='X' && (NetworkPacket >= 50? printf("No more network packets can be added" ),0 : 1));
试试这个

do
{
     (switch case menu)
     NetworkPacket++;
}

 while(choice!='X' && (NetworkPacket >= 50? printf("No more network packets can be added" ),0 : 1));

从风格上讲,如果
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");
}
#定义数据包限制50
做{
(开关箱菜单)
//推测NetworkPackets也在这里更新
}而((choice!=“X”)&&(NetworkPackets=数据包限制){
printf(“不能再添加网络数据包”);
}

在循环逻辑中使用
允许循环主体添加多个数据包。

从风格上讲,如果
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");
}
#定义数据包限制50
做{
(开关箱菜单)
//推测NetworkPackets也在这里更新
}而((choice!=“X”)&&(NetworkPackets=数据包限制){
printf(“不能再添加网络数据包”);
}

在循环逻辑中使用
可以允许循环体添加多个数据包。

请编辑您的帖子并重写此帖子,而不要使用令人尴尬的最后一个复合语句。这和现在的情况没有多大意义。看起来您正试图将语句作为条件的一部分来执行。这是可以做到的,但通常不被认为是好的做法,因为它往往会导致相当尴尬(和容易出现错误)的代码。请编辑您的文章,并重写此文章,而不要使用尴尬的最后一个复合语句。这和现在的情况没有多大意义。看起来您正试图将语句作为条件的一部分来执行。这是可以做到的,但通常不被认为是好的做法,因为它往往会导致相当笨拙(并且容易出现错误)的代码。错误:“:”标记之前的语法错误。我还应该提到,网络数据包整数只是作为一个计数器添加的,所以每次用户通过菜单循环添加数据包时,它只会添加1ok,我的错误加上一些额外的},但这似乎是可行的,感谢您的洞察力,但是这个计数器会做什么呢?那0:1呢?这是个好问题<代码>?:
是一个<代码>,
是一个。当
NetworkPacket>=50
变为真时,执行
printf
,整个表达式在
之后变为
false
。如果条件为false,则
之后的整个表达式的值通过
之后的
1
变为
1
错误:“:”标记之前的语法错误。我还应该提到,网络数据包整数只是作为一个计数器添加的,所以每次用户通过菜单循环添加数据包时,它只会添加1ok,我的错误加上一些额外的},但这似乎是可行的,感谢您的洞察力,但是这个计数器会做什么呢?那0:1呢?这是个好问题<代码>?:
是一个<代码>,是一个。当
NetworkPacket>=50
变为真时,执行
printf
,整个表达式在
之后变为
false
。如果条件为false,则
之后的整个表达式的值通过
之后的
1
变为
1