sum*_*mit 17 java android function operators ternary-operator
刚刚从php切换到Java
我遇到了以下问题
我想改写
if(usrname.equals(username) && (passwd.equals(password))){
return true;
}
else{
return false;
}
Run Code Online (Sandbox Code Playgroud)
如
(usrname.equals(username) && passwd.equals(password) )? return true : return false;
Run Code Online (Sandbox Code Playgroud)
它不起作用(语法错误)但是,
int a=1;
int b=2;
int minVal = a < b ? a : b;
Run Code Online (Sandbox Code Playgroud)
工作中
为什么三元运算符在返回值时表现不正常,具体取决于某些条件
编辑
return (usrname.equals(username) && passwd.equals(password));
Run Code Online (Sandbox Code Playgroud)
如果它返回布尔值可能是解决方案.
我想说我需要
(usrname.equals(username) && passwd.equals(password) )? return "member": return "guest";
Run Code Online (Sandbox Code Playgroud)
Ani*_*kur 38
你可以做
return (usrname.equals(username) && passwd.equals(password) )? true : false;
Run Code Online (Sandbox Code Playgroud)
true并且false可以替换为您想要的任何返回值.如果它只是布尔值,那么你可以完全避免使用三元运算符.做就是了
return (usrname.equals(username) && passwd.equals(password));
Run Code Online (Sandbox Code Playgroud)
Ste*_*n C 18
我想说我需要
Run Code Online (Sandbox Code Playgroud)(usrname.equals(u) && passwd.equals(p)) ? return "member" : return guest";
正确的语法是:
return (usrname.equals(u) && passwd.equals(p)) ? "member" : "guest";
Run Code Online (Sandbox Code Playgroud)
三元运算符的一般形式是
expression-1 ? expression-2 : expression-3
Run Code Online (Sandbox Code Playgroud)
其中expression-1已键入boolean,并expression-2与expression-3具有相同的类型.
在您的代码中,您使用的return语句需要表达式.在Java中,return语句不是有效的表达式.
说了这么多,写的最好方法你例子并不用条件运算都:
return usrname.equals(username) && passwd.equals(password);
Run Code Online (Sandbox Code Playgroud)
为什么多余boolean
只需使用
return (usrname.equals(username) && passwd.equals(password));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38864 次 |
| 最近记录: |