11

C++ では、この式はコンパイルされ、実行されると次のように出力されますtest

    if(!1 >= 0) cout<<"test";

しかしJavaでは、これはコンパイルされません:

    if(!1 >= 0) System.out.println("test");

代わりに括弧が必要です:

    if(!(1>=0)) System.out.println("test");

がtrue であり、true が falseであるtestため、印刷されません。1 >= 0NOT

testでは、ステートメントが false であるにもかかわらず、Java ではなく C++ でコンパイルおよび出力されるのはなぜでしょうか?

ご協力いただきありがとうございます。

4

2 に答える 2

6

Java 単項演算子!では、条件演算子よりも優先順位が高くなります>=。そのため、括弧が必要 ()です。

Javaの演算子優先順位の詳細表です。

ただし、C++ では、条件内の正の値を値として参照しboolean trueます。したがって、if(!1>=0)C++ では有効ですが、Java では無効です。Java では、boolean値は と のみtrueですfalse。正の値を真として扱うことはありません。

于 2013-10-23T05:12:13.113 に答える