CodingBat.com (extraFront) で基本的な Java 文字列の問題を解決しています。
タスクは、任意の長さの文字列を指定して、最初の 2 文字を 3 回繰り返して返すことです。この最初の例は、私が直感的にやったことです。
public String extraFront(String str) {
if (str.length() <= 2){
String front = str;
}else{
String front = str.substring(0,2);
}
return front+front+front;
}
これにより、エラーが発生します。フロントを解決できません。ループの外側で変数を定義する必要があると推測したので、コードを次のように変更しました。これはエラーなしで機能します。
public String extraFront(String str) {
String front;
if (str.length() <= 2){
front = str;
}else{
front = str.substring(0,2);
}
return front+front+front;
}
とにかく変数が宣言されるので、なぜこれが違いを生むべきなのか、私を困惑させているのはなぜですか?これは CodingBat がコードを処理する方法の特異性ですか、それとも実際にはエラーですか? もしそうなら、なぜこの間違ったコードなのですか? そして、それが間違っていなければ、スタイルが悪いのでしょうか?