私は本「TheJavaTutorial」第6版を勉強しています。私はこの例を実行しました:
public int indexOf(E e) {
for (ListIterator<E> it = listIterator(); it.hasNext(); )
if(e == null ? it.next() == null : e.equals(it.net()))
return it.previousIndex();
return -1;
}
私の質問は、forループに使用される特定の構文の正確な意味は何ですか?そして、if条件で「?」とはどういう意味ですか?そしてその ":"?
for (initialization ; condition ; incrementation) { ... }
通常のforループ構文です。不要な場合は、インクリメント部分を空白のままにすることができます。ただし、無限ループが発生する可能性があるので注意してください。それがあなたのループがどのように見えるかです-インクリメント部分なしで。
e == null ? it.next() == null : e.equals(it.net())
は単純な三項演算子です。 IF condition ? THEN : ELSE
書き直した場合、次のような意味になります。
if(e == null) {
return it.next == null
} else {
return e.equals(it.net())
}
ブール値を返すため、囲んでいるif()
ステートメントはそれを条件として受け入れます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加