刚刚从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;
工作中
Why ternary operator are not behaving correctly while returning value depending on some condition
编辑
return (usrname.equals(username) && passwd.equals(password));
如果它返回布尔值可能是解决方案 .
我想说我需要
(usrname.equals(username) && passwd.equals(password) )? return "member": return "guest";
4 回答
你可以做
true
和false
可以替换为您想要的任何返回值 . 如果它只是布尔值,那么你可以完全避免三元运算符 . 做就是了正确的语法是:
三元运算符的一般形式是
其中
expression-1
的类型为boolean
,expression-2
和expression-3
的类型相同 .在您的代码中,您使用的是需要表达式的
return
语句 . 在Java中,return
语句不是有效的表达式 .话虽如此,编写示例的最佳方法根本不使用条件运算符:
为何多余
boolean
只是用
顺便说一下,你可以简化:
return(usrname.equals(username)&& passwd.equals(password))? return true:return false;
至:
return usrname.equals(username)&& passwd.equals(password);
三元运算符在PHP中的工作类似于Java,我认为你犯了一个愚蠢的错误,也许“用户名”有一个空格或另一个白色字符
它返回“真实”