写条件语句,不使用if / else /?

问题描述 投票:0回答:1

我希望编写条件代码而不使用C语言的(if/else/?/while etc...)

例如以下代码:

if (Num>6) printf("T");

可以转换为(并且仍然执行相同的任务):

Num>6 && printf("T")

但以下内容:

bool larger;
if (Num>6) larger=true;

不能替换为:

bool larger;
Num>6 && larger=true;

因为需要左值作为赋值的左操作数

有帮助吗? (我认为&&操作和使用bool会有所帮助)

c if-statement conditional-statements c99
1个回答
1
投票

添加括号:

bool larger;
Num > 6 && (larger = true);

为什么?因为=lower precedence&&具有>。这意味着该表达式被解析为

((Num > 6) && larger) = true;

这是无效的分配

Demo on compiler explorer

© www.soinside.com 2019 - 2024. All rights reserved.