是否可以在条件运算符中使用continue?用c语言

是否可以在条件运算符中使用continue?用c语言,c,C,如果for loopI未除以3,我将打印no,否则继续循环 (i%3==0)? continue : (printf("no")); 我在这一行上得到错误否。在三元运算符中,两个值都必须是表达式继续是一条语句,而不是表达式。改用if语句。我想说,您可以轻松使用while循环: while(1){ if(i%3 == 0) i = i % 3; }else{ printf_s("no"); break; } 这将不起作用,因为条

如果for loop
I
未除以3,我将打印
no
,否则继续循环

(i%3==0)? continue : (printf("no"));

我在这一行上得到错误

否。在三元运算符中,两个值都必须是表达式<代码>继续是一条语句,而不是表达式。改用
if
语句。

我想说,您可以轻松使用while循环:

while(1){

if(i%3 == 0)
    i = i % 3;
}else{
    printf_s("no");
    break;
}

这将起作用,因为条件运算符是表达式的一部分,其值是第二或第三子句,
continue
是一条语句

条件运算符的使用方式如下:

days_in_february = is_leap_year() ? 29 : 28;
现在想象一下,如果你想要的是被允许的话。如果您这样做:

val = (i%3==0)? continue : (printf("no"));
那么,如果条件为真,
value
将设置为什么
continue
不是表达式,因此没有“值”,因此这样的语句没有意义

您需要使用标准的
if
语句来完成以下操作:

if (i%3==0) {
    continue;
} else {
    printf("no");
}

不,这是不可能的,因为
continue
不是表达式,条件运算符的所有部分也必须是表达式。使用if语句。否。
?:
运算符的两个可能结果都必须是产生可兼容类型的表达式。除其他外,这确保
x=a?b:c有道理<代码>继续
不是表达式。如果要使用
继续
,请使用
如果
(例如
如果(i%3==0)继续;否则printf(“否”);
(最好使用
{}
分隔的块)唯一的方法是使用语言扩展,例如
gcc
的语句表达式。不过我建议不要使用它,因为它完全没有必要,而且结果代码是不可移植的(即,它不是C)。只需对
continue
使用一个普通的
if
语句,否则就进入
printf
语句。为什么要这样做?您的目标是尽可能地将干净的结构化代码弄乱?我强烈建议不要使用此类代码。三元运算符与
if
不同而且不应该作为一个使用。不,由于前面评论中给出的原因,这不起作用。这也是一种非常糟糕的风格-
?:
操作符不能替代
if else
语句,也不应该作为一个语句使用。OP没有明确说明他们希望通过循环实现什么,但我猜
i
应该是一个计数器变量。所以我猜它应该是
for(int i=0;i
而不是
while(1)
。但是,由于OP没有提供详细信息,因此尝试解决OP的总体任务没有什么意义。相反,解决OP的直接问题才有意义,这就是三元运算符的作用。