演習 - メソッドからブール値を返す
ブール型の戻り値を持つメソッドは単純ですが、コードを統合する場合に便利です。
bool 値を返すメソッドを呼び出して、任意の場所、if ステートメント内、変数宣言内などでデータ入力を評価できます。 この演習では、ブール型の戻り値を持つメソッドを作成して使ってみます。
ブール値を返すメソッドを作成する
あなたはコーディング面接の受験者だとします。 面接担当者から、いくつかの単語が回文かどうかを調べるように求められました。 前から読んでも後から読んでも同じ単語は回文になっています。 たとえば、racecar という単語は回文です。 それでは始めましょう。
Visual Studio Code エディターで、前の演習の既存のコードを削除します。
以下のコードをエディターに貼り付けます。
string[] words = {"racecar" ,"talented", "deified", "tent", "tenet"}; Console.WriteLine("Is it a palindrome?"); foreach (string word in words) { Console.WriteLine($"{word}: {IsPalindrome(word)}"); }このコードでは、いくつかのテスト ケースが設定され、
IsPalindromeという名前のメソッドが参照されています。 単語とIsPalindromeメソッドの出力は、Console.WriteLineステートメントで出力されます。新しい空白のコード行を入力し、次のコードを入力して
boolメソッドを作成します。bool IsPalindrome(string word) { return true; }単語が回文になっているかどうかを調べる方法を考えてみてください。
調べる 1 つの方法は、単語の最初と最後の文字を比較することです。 それが一致したら、単語の 2 番目の文字と最後から 2 番目の文字を比較します。 単語の真ん中に達したら、すべての文字が比較され、一致しています。 いずれかの文字が一致しない場合、単語は回文ではありません。
IsPalindromeメソッドを次のコードで更新します。bool IsPalindrome(string word) { int start = 0; int end = word.Length - 1; while (start < end) { if (word[start] != word[end]) { return false; } start++; end--; } return true; }文字列の最初と最後の文字を指している変数
startとendに注意してください。 単語の真ん中に達したら、つまりstartとendが同じ文字を指すか、相互に交わったら、ループは終了します。 一致するたびに、ポインターは内側に移動されます。 一致しない場合、メソッドは終了してfalseを返します。これで、メソッドは単語が回文かどうかを正しくチェックし、それに応じて
trueまたはfalseを返すようになりました。
作業を確認
このタスクでは、統合ターミナルからアプリケーションを実行し、コードが正しく動作していることを確認します。 それでは、始めましょう。
Ctrl + S または Visual Studio Code ファイル メニューを使用して作業内容を保存します。
必要に応じて、Visual Studio Code の統合ターミナル パネルを開きます。
[エクスプローラー] パネルで、TestProject フォルダーの場所にあるターミナルを開くには、[ TestProject] を右クリックし、[ 統合ターミナルで開く] を選択します。
ターミナルのコマンド プロンプトで、「dotnet run」と入力します。
コードによって次の出力が生成されることを確認します。
Is it a palindrome? racecar: True talented: False deified: True tent: False tenet: Trueコードによって表示される結果が異なる場合は、コードを確認し、エラーを見つけて更新する必要があります。 コードをもう一度実行して、問題が修正されたかどうかを確認します。 コードで予期される結果が得られるまで、コードの更新と実行を続けます。