这是一个布尔方法,仅占我分配的一小部分。我想基于输入和记录之间是否匹配返回true或false。我想我遇到了语法问题。
public boolean checkPhone(String[]param) {
for(String s: param)
{
for(Residents r: petshop)
{
if(s.equals(r.getPhone()))
{
return true;
}
}
}
}
这是方法的代码,但是总是有红线指示我应该在代码中添加return,否则将方法更改为void。但是我已经在if语句中添加了return true。
答案 0 :(得分:5)
如前所述,您需要一个附加的return
,因为每个具有非无效返回类型的方法都要求每个可能的路径都具有一个返回值。
public boolean checkPhone(String[] param)
{
for (String s : param) {
for (Residents r : petshop) {
if (s.equals(r.getPhone())) {
return true;
}
}
}
return false;
}
答案 1 :(得分:1)
只需在for循环外添加import UIKit
class TabbarViewController: UITabBarController,UITabBarControllerDelegate {
//MARK:- View Life Cycle
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
//Tabbar delegate method
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
let yourView = self.viewControllers![self.selectedIndex] as! UINavigationController
yourView.popToRootViewController(animated:false)
}
}
,以使该方法在所有可能的条件下都具有return语句。这意味着即使该方法执行从未找到匹配项,该方法也应该能够返回布尔值,即false,这意味着它找不到任何匹配项。
return false;
答案 2 :(得分:0)
将状态true
存储在if循环中并带有变量,然后在循环结束时返回该变量。
请参考以下内容:
public boolean checkPhone(String[] param) {
boolean state;
for (String s: param) {
for (Residents r: petshop) {
if (s.equals(r.getPhone())) {
state = true;
}
}
}
return state;
}
答案 3 :(得分:0)
或者,您可以声明boolean retVal = false
并将其设置为true(在s.equals(r.getPhone())
的情况下,但始终返回此变量。
public boolean checkPhone(String[] param) {
// declare the return value
boolean retVal = false;
for (String s : param) {
for (Residents r : petshop) {
if (s.equals(r.getPhone())) {
retVal = true;
}
}
}
return retVal;
}
与@ maio290解决方案的区别在于,循环始终完全运行,无论是否在某个元素上满足条件。这可能会成为性能问题。
答案 4 :(得分:0)
这是因为,如果您的if条件不成立,那么您将不会返回任何内容。 请参考此。
public boolean checkPhone(String[] param) {
boolean isMatch = false;
for (String s: param) {
for (Residents r: petshop) {
if (s.equals(r.getPhone())) {
isMatch = true;
}
}
}
return isMatch ;
}