Java - comma operator outside for loop declaration

前端 未结 2 749
南旧
南旧 2021-01-02 14:37

I know I can use the comma operator like this

for (int i = 1, j = 15; j>10; i++, j--) {
    // do something neat
}

but some articles see

2条回答
  •  伪装坚强ぢ
    2021-01-02 14:55

    What's wrong?

    Some of the tricks which work in C don't work in Java.

    Was the comma operator a part of an older specification which later changed?

    This never worked in Java AFAIK.

    Are the people that wrote those examples using a different Java setup that allows this?

    Its a common mistake to assume Java is just like C or C++ because it is similar. A good portion of coding mistakes on SO are due to people trying to write C++ in Java and getting confused when it doesn't do what they expect.

    BTW: I have made the same mistake assuming C++ is just like Java as my knowledge of C++ is not current.


    However some tricks which working Java but perhaps not C.

    You can use all currency symbols or which there are a few which look at most the same.

    e.g.

    if( ⁀ ‿ ⁀ == ⁀ ⁔ ⁀ || ¢ + ¢== ₡)
    

    You can use character which are invisible and c couple which reverse the order the rest of the line when printed. ;)

    This program compiles and runs and prints all the odd characters you can use in Java identifiers

    for (char c‮h = 0; c‮h < Character.MAX_VALUE; c‮h++)
        if (Character.isJavaIdentifierPart(c‮h) && !Character.isJavaIdentifierStart(c‮h))
            System.out.printf("%04x <%s>%n", (int) c‮h, "" + c‮h);
    

    which makes its almost too easy.

    http://vanillajava.blogspot.co.uk/2012/08/uses-for-special-characters-in-java-code.html

    http://vanillajava.blogspot.co.uk/2012/09/hidden-code.html

提交回复
热议问题