?运算符不起作用

sud*_*udo 5 java operators

怎么这不可能?我开始表达非法行为.

(s1.charAt(i) == ' ') ? i++ : break;
Run Code Online (Sandbox Code Playgroud)

dop*_*ner 24

这里要理解的是?:运算符用于返回一个值.你基本上是在这一行调用一个看起来像这样的函数:

anonymous function:
    if(s1.charAt(i) == ' '):
        return i++;
    else:
        return break;
Run Code Online (Sandbox Code Playgroud)

没有意义,对吧?的:运营商仅设计为的if/else return语句像上面,而不是更换的if/else完全的简写.


Bol*_*ock 13

您不能使用break三元条件表达式的一部分,因为break它不是表达式本身,而只是一个控制流语句.

为什么不使用if-else结构呢?

if (s1.charAt(i) == ' ') {
    i++;
} else {
    break;
}
Run Code Online (Sandbox Code Playgroud)