‫お帰りなさい｡
‫このビデオでは､ ちょっとしたログインシステムを作ります｡ 本当のログインシステムではないですが､
‫if文と否定文を使っています｡
‫そして､ あなたのログインシステムに似た小さな例をお見せします｡
‫わかりました｡
‫ブール値がadmin､ ブール値がregistered､ そして文字列がユーザー名で､ これは空のままにしておきます｡
‫is adminと同じです｡
‫さて､ ここで値を設定する必要があります｡
‫これをfalseで初期化し､ registeredをtrueで初期化します｡
‫わかりました｡
‫では､ ここに小さなプログラムを作って､ ユーザーが登録されているかどうかをチェックしましょう｡
‫つまり､ ユーザーが登録されたら､ コンソールに何かを書きたいのです｡
‫だから､ コンソールドット右の行と私はそこにこんにちは､ 登録ユーザーと書くつもりです｡
‫そして､ ユーザー名まであれば､ 何か書きたい｡
‫実際に彼のユーザー名を書いてみたい｡
‫そこで､ usernameがemptyでない場合は､ 次のような書き方をしたい｡
‫そこで､ コンソールの右の文をここにコピーしておきます｡
‫こんにちは｡
‫そして､ ユーザー名｡
‫というわけで､ こんにちは､ コンマ＋ユーザー名です｡
‫また､ ユーザーが管理者で登録されている場合､ または実際に特定のユーザー名を持つユーザーである場合､ そのユーザーが登録されています｡
‫ユーザー名が二重の等号と等しい場合､ または実際にはここで等しい場合です｡
‫エドマンド
‫そして､ Hi there, adminのような書き方をします｡
‫わかりました｡
‫つまり､ これはネストされたif文なのです｡
‫if文の中にif文があり､ if文の中にif文がある｡
‫だから､ これはあれの中にあって､ あれはこれの中にあるんです｡
‫そこで､ 否定文を用意し､ 複数の条件をチェックする｡
‫そこでまず､ ユーザーがロックインしているかどうかを確認し､ 次にユーザー名を確認します｡
‫空でなければ､ 彼のユーザー名を書き､ 空であれば書きません｡
‫そこで､ ユーザー名を変更し､ 空欄にしないようにしましょう｡
‫そこで､ usernameはconsole dot read lineと等しいとすることにします｡
‫ユーザーのエントリーを読み込んで､ ユーザーネームに格納します｡ そして､ ユーザーがadminのようなものを入力する可能性があるので､
‫大文字小文字を区別しないようにします｡
‫そこで､ 私たちは
‫そしてまず､ それはまあ､ 私がまだ知らない､ どうしたらいいのかさえもわからないのです｡
‫そこで早速､ ユーザーが何をすればいいのかわかるように､ 何か書いてみましょう｡
‫それをコンソールの右のラインでやるんです｡
‫ユーザー名を入力してください｡
‫なるほど､ ではそれを確認してみましょう｡
‫ユーザー名を入力してください｡ 空白の引用符で囲んで､ 私たちのプログラムは終了します｡
‫というのも､ 私たちは文章を書くだけで､ 実際に読むことはしていないからです｡
‫ユーザー名を入力してください｡ 空白の画面を使用するつもりです｡
‫そして､ Hi there, registered users, our userと言います｡
‫こんにちは､ ダブルクオーテーションマークです｡
‫つまり､ この2つを入力したにもかかわらず､ ユーザー名が空文字列でないと表示されるのは､ ここに入力したものが空文字列ではなく､
‫実際にはこのような文字列であるからです｡
‫では､ お見せしましょう｡
‫実はそんな感じなんです｡
‫だから､ 文字列やクォーテーションマークなどがあるのです｡
‫ではもう一度､ 何も入力しないでやってみましょう｡
‫そして､ Hi there, registered userと表示されますが､ hi there usernameとは表示されません｡ ユーザー名は実際には空白だからです｡
‫よし､ ではもう一度やってみよう｡
‫今回は､ 名前とユーザー名を入力します｡
‫よし､ デニスだ｡
‫こんにちは｡
‫登録ユーザーである｡
‫こんにちは､ デニスや｡
‫こんにちは､ デニスさん｡
‫だから今､ 私がadminを入力する場合｡
‫アドミは､ 実は非資本主義です｡
‫こんにちは､ 登録ユーザーは､ 管理者を隠すと､ 自分の管理者を隠すことができます｡
‫だから､ 最初の管理者は私が入力したもので､ 2番目はこちらの管理者です｡
‫わかりました｡
‫このように､ if文が入れ子になっており､ この条件に基づいてコードを実行し､ その後に別の条件をチェックしていることがわかります｡
‫そして､ その後に別の条件を確認します｡
‫そこで､ 1つのif文の中で､ これらすべてを実行することができます｡
‫そのため､ その内部でチェックするだけで､ 追加のif文はすべて取り除くことができるのです｡
‫だから､ そうするつもりです｡
‫ここで休憩､ 確認します｡
‫ユーザー名が空でなく､ ユーザー名がadminに等しい｡
‫さて､ このイコールはどういう意味かというと､ まだ説明していないからです｡
‫Equals は､ インスタンスと指定された他の文字列オブジェクトが同じ値を持つかどうかを判定します｡
‫つまり､ usernameの中にあるものをチェックし､ その文字列と比較するということです｡
‫なるほど､ それで文字列を比較するわけですね｡
‫整数の比較方法が違う
‫そんな感じで整数を比較するわけです｡
‫もしや｡
‫INTやactually my int is equal to my endは､ 整数を比較する方法ですが､ 文字列の場合はequalsを使います｡
‫そこで､ 今はユーザーが登録に興味があるかどうかをチェックしています｡
‫彼のユーザー名をチェックして､ 彼が管理者であるかどうかを確認し､ そのすべてが当てはまる場合は､
‫ここにあるコードを実行するので､ もうif文は必要ありません｡
‫そして､ それらを解消していく｡
‫実は､ あれが必要なんです｡
‫そして､ そこに私たちはいます｡
‫だから今､ 私が実行すれば｡
‫ユーザー名を入力してください｡ 私はadminを入力しますが､ Hi thereと表示されます｡
‫登録ユーザー こんにちわ｡
‫管理者
‫管理人さん､ こんにちは｡
‫しかし､ ネストされたif文がある場合､ つまりF文の中にif文がある場合､
‫次の文を実行する前にいくつかの追加コードを実行することができます｡
‫それがうまくいっても､ あまり深入りしないほうがいい｡
‫だから､ if文の中にif文があり､ F文の中にF文があるなどということはあってはならないのです｡
‫一応､ 混乱はしているのですが｡
‫ですから､ ネストされたif文をするときにベストなコンセプトを考え､ より読みやすく､ さらにシンプルに構築できるような方法を考えてみてください｡
‫わかりました｡
‫そこでもうひとつ｡
‫今､ doubleとandを使った比較がありますが､ orを使った比較も可能です｡
‫例えば､ その人が管理者なのか登録者なのかを確認したいとします｡ どちらの場合も､ console right
‫lineとyou are logged inのように書くだけでよいからです｡
‫わかりました｡
‫つまり､ どちらか一方だけが真であっても､ この文､ この比較全体は､ is adminが真でなければならないか､ is
‫registeredが真でなければならないので､ for is trueです｡
‫もし両方が本当なら､ この文全体も本当である｡
‫どれにも当てはまらない場合､ その文は偽となる｡
‫では､ もう一度実行してみましょう｡
‫デニスを追加したり入力したりしても､ ログインしているというだけで､ 何も表示されないのはなぜですか？
‫では､ なぜそれらのものをここでチェックしないのでしょうか？
‫そりゃ､ 管理者としてログインしてないし､ ロックされてないか､ ユーザー名が空っぽだからだろう｡
‫だから､ この文章はもう真実ではないのです｡
‫でも､ こっちの文とか､ このif文とか｡
‫まあ､ それは実際にそうなのですが､ 管理者である私がチェックされるので､ 見てみましょう｡
‫まあ､ 私は管理者ではないので｡
‫私は登録されていますか？
‫はい､ そうです｡
‫つまり､ あなたは登録され､ ログインしていますよ､ と教えてくれているのです｡
‫わかりました｡
‫さて､ ここまででif文の入れ子の作り方を見てきましたが､ 次のビデオではちょっとしたチャレンジをしてみましょう｡
‫だから､ どうぞ課題を解いてみてください｡
‫現地でお会いしましょう｡