‫メグさん､ ようこそ｡
‫このビデオでは､ switch文の課題に対する私のサンプル解答をお見せしたいと思います｡
‫そして､ ええ､ 始めましょう｡
‫まず､ 必要なのはブール値で､ これをvalidと呼ぶことにします｡
‫つまり､ これは有効なデータ型か無効なデータ型かを知るためのもので､ 有効か無効かは､ ユーザーが文字列を入力した後に何を入力したかに依存するのです｡
‫まず､ 文字列を入力し､ 値の型を知るための変数が必要です｡
‫そして､ ユーザーに何かを入力するように求めています｡
‫そこで､ 値を入力すると言うことで､ これをinput valueという変数に格納することにします｡
‫わかりました｡
‫次に､ ユーザーがどのような種類のデータだと思うかを尋ねたいと思います｡
‫そこで､ 入力された入力を検証するためのデータ型を選択します｡
‫つまり､ 文字列はプラス1､ 整数はプラス2､ ブール値はプラス3です｡
‫そして今､ 私たちはもちろん､ そのどれが正しいのかを確認する必要があります｡
‫そのため､ まずはユーザーの入力を得る必要があり､ ユーザーが入力した値を取得する必要があります｡
‫つまり､ 例えばユーザーが入力タイプを1つ入力した場合､ ここの変数が1になります｡
‫2と入力すれば､ 2などになる｡
‫そこで､ ユーザーが入力したものを整数に変換しています｡
‫もちろん､ うまくいかないこともあるので､ ここは三脚を使うのがいいかもしれませんね｡
‫ただ､ プログラムがクラッシュしないように､ 1つ､ 2つ､ 3つと一般的な数しか入力しないことを前提にしています｡
‫もしプログラムが本当にクラッシュしないことを確認したいのであれば､ このあたりにtryとcatch a blockを追加すれば､
‫間違いなく助けになるでしょう｡
‫またはtry passを使用することもできます｡
‫わかりました｡
‫だから､ それはあなたにとって自由なのです｡
‫今回はシンプルにまとめただけです｡
‫そして､ ここではswitch case文に着目しています｡
‫そうですね｡
‫では､ さっそくスイッチケースを作ってみましょう｡
‫では､ スイッチケースは何に興味を持つのでしょうか？
‫さて､ まず必要なのは､ ユーザーが何を入力したかを知ることです｡
‫では､ 1､ 2､ 3だったのでしょうか？
‫文字列である場合のコードを実行してみましょう｡
‫つまり､ ユーザーが1を入力した場合について｡
‫そこで､ ユーザーが入力したものがすべてアルファベットであるかどうかをチェックするメソッドを追加で作成することにします｡
‫だから､ 文字列であれば
‫この方法は､ 先にアルファベットで見てみましょう｡
‫そこで､ これをちょっと作ってみます｡
‫静的な void main メソッドの外側にあるメソッドです｡
‫だから､ こっちのほうに置くんです｡
‫このクラスのオブジェクトを作成しないので､ それ以外では使用できないため､ 静的であることを確認する必要があります｡
‫だから､ この場合は静止画にする必要がある｡
‫そして､ ブール値を返しています｡
‫つまり､ このメソッドはboolを返すので､ すべてアルファベットであると言っているのです｡
‫それがメソッドの名前です｡
‫渡される値である文字列が必要です｡
‫そして､ 何をするかというと､ valueの中の各文字､ つまり文字列であるCに対して､
‫です｡
‫だから､ それができるんです｡
‫確認したいのは､ charが文字であるかどうかです｡
‫そして､ それが手紙でなければ､ 戻るのです｡
‫偽り｡
‫つまり､ このブール値は､ 文字列全体からこの値全体を調べ､ それぞれがletter型の文字であれば､
‫falseを返すことになります｡
‫本当です｡
‫つまり､ ここにHello Worldというテキストがあるとします｡
‫そして､ ここにある文字､ あるいは文字をひとつひとつチェックしていくのです｡
‫これは手紙なのか｡
‫それから｡
‫これは手紙なのか？
‫などなど｡
‫そして､ その都度､ 見ることになる｡
‫これは､ 実は､ 手紙なんです｡
‫そのため､ このfor eachループでは､ どの時点でもfalseを返さずに通過することになります｡
‫そして､ それは真を返します｡
‫そして､ 例えばhello worldの代わりに0があり､ これは私たちがクールであることから3であるとすると､
‫これはfalseを返します｡
‫だからチェックするのでしょう｡
‫これは手紙なのか｡
‫はい､ その通りです｡
‫この手紙ですか？
‫いいえ､ そんなことはありません｡
‫だから､ この発言は全部嘘だ｡
‫だから､ このメソッド全体から外れてリターンすることになる｡
‫偽り｡
‫なるほど｡
‫さて､ これでケースに戻れますね｡
‫私たちが有効だと言っているのは､ アルファベットです｡
‫そこで､ 入力値を渡すのですが､ これが私たちのものです｡
‫ユーザが入力したここの文字列｡
‫つまり､ ユーザーが入力したものが何であれ､ それがアルファベットかどうかをチェックするのです｡
‫そして､ 入力値の型は文字列とします｡
‫そして､ そこから脱却する｡
‫ところで､ この投票用紙は､ これから､ もちろん､ 私たちが与えた入力に基づき､ すべてアルファベットで返されるものであれば､
‫その結果になります｡
‫そして次に､ ユーザーが整数を入力した場合について見てみましょう｡
‫そこで､ ここでは､ ユーザーが2を入力すると､ それが整数になるように設定しました｡
‫そこで､ 戻り値が0かどうかをチェックします｡
‫そして､ チェックインして､ 入力値のパースを試みます｡
‫つまり､ 文字列を渡して､ それをパースして､ うまくいけばvalidがtrueになるわけです｡
‫そして､ うまくいかなかった場合は､ 虚偽となります｡
‫そして､ 正しい時に出力されたものは､ 赤い値で表示されます｡
‫そして､ 入力値の型が整数であったとする｡
‫そこから脱却する｡
‫さて､ 次はケース3です｡
‫そして､ ここではブーリアンレッドフラグをチェックしています｡
‫もちろん､ ここでboolを使うこともできます｡
‫booleanを使用する必要はありません｡
‫赤旗
‫この場合､ 返されたフラグが偽になるんです｡
‫ここでも三脚を使っています｡ トロイパワーズは整数に使えますが､ ブーリアンにも使えることがおわかりいただけるでしょう｡
‫そして､ ここでは､ bool dotが入力値でパースを試みます｡
‫入力値が実際にbooleanであった場合､ destroy parseはtrueを返す｡
‫そうでない場合はfalseを返し､ それは無効なものとして保存される｡
‫そして､ この不法侵入の結果がどうであれ､ 赤旗に保存されることになるのです｡
‫したがって､ もしそれがbooleanであれば､ red flagはtrueになり､ validもtrueになるので､ 入力値のタイプをbooleanに設定した｡
‫そして､ いよいよデフォルトのケースが必要になってきました｡
‫そこで､ ユーザーが1､ 2､ 3以外のものを入力したとします｡
‫その場合は､ 入力の種類を検出できませんでしたと言うだけです｡
‫何かが間違っている､ そこから脱却する｡
‫そして今は､ それが有効に入力されたかどうかをユーザーに伝えるだけです｡
‫ですから､ もし彼が何を入力しても正しく考慮し､ 「ところで､ これはもう1行先にあるはずだ」と言うだけでいいのです｡
‫つまり､ 値を入力したというだけで､ その値が有効かどうかをチェックするのです｡
‫そして､ コンソール赤線が有効だった場合は有効だと言っています｡
‫そして､ それがどの入力値タイプであったかを言うのです｡
‫これで､ use of unassigned local variable input value typeと書いてあるのがわかりますね｡
‫つまり､ ここでは値を割り当てていますが､ switchにのみ割り当てており､ すべての出力に割り当てているわけではありません｡
‫例えば､ デフォルトでは､ 入力値タイプに対する出力がないわけです｡
‫そこで､ 私たちができることは2通りあります｡
‫input value type is equal unknown と言えば､ エラーはなくなるはずです｡
‫あるいは､ 入力値のタイプをstring dot emptyとすることも可能でした｡
‫それも選択肢の一つだったのでしょう｡
‫そして､ エラーも消えているのがわかります｡ 私はこの変形がもっと好きです｡
‫このように2つの選択肢があったわけですが､ このままにしておきます｡
‫よし､ では実行してみよう｡
‫そして､ 値として､ 13を入力し､ 今度は整数とします｡
‫値13を入力しました｡
‫有効な整数である｡
‫よし､ ではもう一度やってみよう｡
‫今度はHello Worldと入力すると､ 整数だと思い込んで､ Hello world it is an invalid
‫integerという値を入力しましたね｡
‫では､ もう一度trueで確認してみましょう､ ブーリアンなので値が入力されていると思います｡
‫本当です｡
‫有効なブーリアンである｡
‫わかりました｡
‫つまり､ この小さなプログラムでは､ 値を入力すると､ それがどのようなデータ型なのかが分かるようになっているのです｡
‫そのため､ switch文や三脚､ さらにはif文も使いました｡
‫おい､ ここで各ループに対して