簡體   English   中英

+++ x需要意外類型:找到變量:value

[英]+++x unexpected type required: variable found: value

這可能是一個愚蠢的問題,但我不知道為什么會這樣。我寫了下面的代碼片段。

public class Test {
public static void main(String... str)
{
    int y = 9;
    int z = +++y; //unexpected type required:variable found:value
    int w = +-+y; // Not Error
}}

為什么+ - + y有效,+ + +不是嗎?

+++y被解釋為++運算符,后跟+y

+y-y一樣有效,但++運算符期望變量操作(它不能遞增值), +y被認為是一個值(執行了加法運算)。

+-+y0 + (0 - (0 + y)) ,並且它沒有增量或減量運算符,因此即使操作將整個表達式轉換為值(而不是變量引用),它也具有沒有效果。

在Java中,字符+++表示++ ,后跟+ ,它們是兩個不同的運算符。 另一方面,沒有運算符+- ,所以字符+-+表示+ ,然后是- ,然后是+

如果你想玩這些運算符,還有~ ,這是二進制的 您可以使用運算符+-~構建任意鏈,只要它們不包含++--

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM