ブール値を返すメソッドを構築しようとしています:
public boolean isStringValid(String s){
boolean isValid;
String temp = null;
// only combinations of 'A','B','C' are allowed
for (int i = 0; i < s.length(); i++)
{
temp = s.substring(i, i+1);
if (temp.equals("A")|temp.equals("B")|temp.equals("C")){
isValid= true;
}else{
isValid= false;
}
}
return isValid;
}
しかし、「ローカル変数 isValid が初期化されていない可能性があります」というコンパイラ エラーが発生します。
私がやろうとしているのは、文字列を取得してそのすべての文字を調べることです。文字列に A、B、または C 以外の文字が見つかった場合、isStringValid メソッドは false を返す必要があります。すべての文字がチェックされ、A、B、または C のいずれかであることが判明した後でのみ、メソッドは true を返すことができます。
ローカル変数のスコープを理解するのに苦労していると思います。メソッドが if/else ブロック内から戻る適切な方法は何ですか? それが不可能な場合、これを設計するための最良の方法をお勧めしますか?
よろしくお願いいたします。