鉴于输入如68 + 32,我们必须在我们的程序中不使用分号进行评估.如果它将在if或for循环中?参考:https://www.spoj.pl/problems/EXPR2/
你可以使用这样的结构:
if (i++) {}
Run Code Online (Sandbox Code Playgroud)
但是,仍然没有回答如何声明变量.但是,你可以做的一个技巧是:
#include <iostream>
int main(double x, double y) {
if ((x = 1)) {}
if ((y = 2)) {}
if (std::cout << x << ", " << y << std::endl) {}
}
Run Code Online (Sandbox Code Playgroud)
当然,你会收到在主参数列表中使用错误类型的警告,但它会起作用.
您可以使用if和逗号运算符,如下所示:
if( expr1, expr2, expr3, ... ) {}
Run Code Online (Sandbox Code Playgroud)
这相当于
expr1;
expr2;
expr3;
...
Run Code Online (Sandbox Code Playgroud)
要使用没有任何警告的变量,您可以定义一个函数来接收您从main调用所需的数据类型,如下所示:
void myFunc(int a, double b) {
if ( expr1, expr2 ) { }
}
int main() {
if ( myFunc(0, 0), 0 ) { }
}
Run Code Online (Sandbox Code Playgroud)
请注意,您需要, 0在main中添加,否则会引发错误,因为不会忽略void返回.