PhpからJavaに切り替えました
次の問題が発生しました
書き直したい
if(usrname.equals(username) && (passwd.equals(password))){
return true;
}
else{
return false;
}
なので
(usrname.equals(username) && passwd.equals(password) )? return true : return false;
ただし、機能していません(構文エラー)。
int a=1;
int b=2;
int minVal = a < b ? a : b;
取り組んでいます
なんらかの条件に応じて値を返すときに三項演算子が正しく動作しない理由
編集
return (usrname.equals(username) && passwd.equals(password));
booleanを返す場合の解決策になる可能性があります。
私が必要と言うことができます
(usrname.equals(username) && passwd.equals(password) )? return "member": return "guest";
できるよ
return (usrname.equals(username) && passwd.equals(password) )? true : false;
true
およびfalse
は、任意の戻り値に置き換えることができます。ブール値のみの場合、三項演算子を完全に回避できます。ただやる
return (usrname.equals(username) && passwd.equals(password));
私が必要と言うことができます
(usrname.equals(u) && passwd.equals(p)) ? return "member" : return guest";
正しい構文は次のとおりです。
return (usrname.equals(u) && passwd.equals(p)) ? "member" : "guest";
三項演算子の一般的な形式は
expression-1 ? expression-2 : expression-3
どこ expression-1
のタイプはboolean
で、expression-2
およびexpression-3
は同じタイプです。
コードでは、式が必要なreturn
ステートメントを使用していました。 Javaでは、return
ステートメントは有効な式ではありません。
とは言っても、yourの例を記述する最良の方法は、条件演算子をまったく使用しません。
return usrname.equals(username) && passwd.equals(password);
なぜ冗長boolean
使うだけ
return (usrname.equals(username) && passwd.equals(password));
ところで、あなたは単純化することができます:
return(usrname.equals(username)&& passwd.equals(password))? return true:falseを返します。
に:
return usrname.equals(username)&& passwd.equals(password);
三項演算子はphpでJavaと同様に動作します。あなたは愚かな間違いを犯したと思います。「ユーザー名」にスペースまたは別の白い文字があるかもしれません
String a1 = "a";
String b1 = "b";
String a2 = "a";
String b2 = "b";
System.out.println((a1.equals(a2)&&b1.equals(b2))?"true":"false");
「true」を返します