1 00:00:00,000 --> 00:00:05,140 2 00:00:05,140 --> 00:00:05,640 大丈夫。 3 00:00:05,640 --> 00:00:08,330 だから今のは何かについて話しましょう programming--で本当に役に立ちます 4 00:00:08,330 --> 00:00:09,914 条件文。 5 00:00:09,914 --> 00:00:11,830 だから、条件式 あなたのプログラムを許可します 6 00:00:11,830 --> 00:00:14,538 意思決定を行い、異なる取ります 道路のフォーク、何か 7 00:00:14,538 --> 00:00:17,670 私は、少し前に示唆しました 変数の値に応じて、 8 00:00:17,670 --> 00:00:20,990 またはに基づいて、どのようなユーザ入力で プログラマ、コマンドラインで、 9 00:00:20,990 --> 00:00:23,130 またはプロンプトを持っている場合 またはそのような何か。 10 00:00:23,130 --> 00:00:26,690 Cは異なるいくつかの方法があります 条件式を発現します 11 00:00:26,690 --> 00:00:29,911 我々はまた、時々呼び出します あなたのプログラムで条件分岐。 12 00:00:29,911 --> 00:00:32,910 そして、これらのいくつかは見に行くされています 最初からあなたにかなり精通して、 13 00:00:32,910 --> 00:00:35,190 だから私たちも彼らを引っ張るだろう 並んでまで、ちょうど 14 00:00:35,190 --> 00:00:38,170 あなたはあなたの頭の中でその類推を行うことができます。 15 00:00:38,170 --> 00:00:41,250 >> だから、if--はかなりある場合 条件付きのシンプルな。 16 00:00:41,250 --> 00:00:43,560 あなたがからリコールした場合 ここで右の傷 17 00:00:43,560 --> 00:00:50,000 あなたはその中に埋めることができた六角形であります マウスダウンであれば青表情で 18 00:00:50,000 --> 00:00:53,010 または、xが10未満であれば、 またはそのような何か。 19 00:00:53,010 --> 00:00:57,390 そして、xが10未満であれば、 またはマウスがダウンして、実際にあった場合は、 20 00:00:57,390 --> 00:01:01,140 コー​​ドのすべての内部 パズルのピースが実行されます。 21 00:01:01,140 --> 00:01:03,720 フィットすべてのもの そのC字状の内側。 22 00:01:03,720 --> 00:01:07,200 >> 同様に、私たちは持っています そこに左の場合。 23 00:01:07,200 --> 00:01:09,210 ブール式の場合、 これは私が使用しています 24 00:01:09,210 --> 00:01:13,010 ブールの一つの代わりとして 我々は前に述べた式、 25 00:01:13,010 --> 00:01:15,240 中括弧、近くに中括弧を開きます。 26 00:01:15,240 --> 00:01:17,720 だから、オープンカーリー考えます ブレースと閉じ中括弧 27 00:01:17,720 --> 00:01:22,720 挟むようにソートの類似 右側の場合はブロックの効果 28 00:01:22,720 --> 00:01:24,070 最初から。 29 00:01:24,070 --> 00:01:28,680 >> ブール式の場合 if文では、真であります 30 00:01:28,680 --> 00:01:30,900 コー​​ドのすべての行 中括弧の間 31 00:01:30,900 --> 00:01:33,870 順番に実行されます 上から下へ。 32 00:01:33,870 --> 00:01:35,700 ブール式の場合 偽である、我々はよ 33 00:01:35,700 --> 00:01:38,610 間ですべてをスキップ 中括弧、我々は唯一の理由 34 00:01:38,610 --> 00:01:44,570 道路でそのフォークを下に行きたいです ブール式が真である場合。 35 00:01:44,570 --> 00:01:48,540 >> 我々は、この一歩を取ることができます さらに他の場合で。 36 00:01:48,540 --> 00:01:50,820 したがって、このスクラッチブロックであります 1とよく似て 37 00:01:50,820 --> 00:01:55,884 我々は除いて、ちょうど秒前見ました それがベースの2つの異なるパスを取ります 38 00:01:55,884 --> 00:01:56,550 何が起こるかについて。 39 00:01:56,550 --> 00:02:00,420 マウスが押されていたのであれば、 またはxは、10未満であった場合 40 00:02:00,420 --> 00:02:04,780 我々は、間にだすべてをやります その最初のフォーク、その最初℃、 41 00:02:04,780 --> 00:02:08,430 >> そうでなければ、マウスである場合 アップ、またはxが10以上であり、 42 00:02:08,430 --> 00:02:10,460 我々は、第二​​の組に全力を尽くします。 43 00:02:10,460 --> 00:02:15,010 そして、それはあなたが見るものに類似です ここでCのブール式の場合、 44 00:02:15,010 --> 00:02:17,910 間のものを行います 中括弧の最初のセット。 45 00:02:17,910 --> 00:02:20,550 そうでなければ、間のものを行います 中括弧の第二のセット。 46 00:02:20,550 --> 00:02:22,080 ブールもしそうであれば 式が真である、我々はよ 47 00:02:22,080 --> 00:02:23,580 最初のセットの間で何でもやります。 48 00:02:23,580 --> 00:02:27,480 ブール式がある場合 偽、それは他のトリガーとなります、 49 00:02:27,480 --> 00:02:30,100 我々はにどんなのをするだろう 中括弧の第二のセット。 50 00:02:30,100 --> 00:02:34,190 ここでも、上から下に、すべての 中括弧の間の行。 51 00:02:34,190 --> 00:02:38,130 >> Cでは、それが作成することが可能です if-elseのif-elseチェーン。 52 00:02:38,130 --> 00:02:42,000 実際にあなたが持つことができるのif-elseのif-else if-elseようにそうであれば、というように、と 53 00:02:42,000 --> 00:02:42,720 上。 54 00:02:42,720 --> 00:02:44,660 スクラッチでは、これは、必要な ブロックをネスト。 55 00:02:44,660 --> 00:02:48,280 あなたはのif-elseを追加し、あなたがしなければなりませんでした 他の内側に別のものを入れて、 56 00:02:48,280 --> 00:02:51,110 ように、それは親切です ネストされた、複雑なの。 57 00:02:51,110 --> 00:02:52,450 しかしCは、我々はそれを行う必要はありません。 58 00:02:52,450 --> 00:02:55,300 私たちは実際にちょうど持つことができます それは、このような鎖であること。 59 00:02:55,300 --> 00:02:58,350 繰り返しますが、あなたは、すべてを期待するかもしれないとして、 これらのブランチは相互に排他的です。 60 00:02:58,350 --> 00:03:00,750 あなたは今まで行くことができます ブランチの1ダウン。 61 00:03:00,750 --> 00:03:02,270 場合、これは本当です。 62 00:03:02,270 --> 00:03:03,930 それ以外の場合は、これがtrueの場合。 63 00:03:03,930 --> 00:03:05,700 それ以外の場合は、これがtrueの場合。 64 00:03:05,700 --> 00:03:07,120 それ以外の場合は、これを行います。 65 00:03:07,120 --> 00:03:11,010 したがって、この中の枝のすべての4つの 例では、相互に排他的です。 66 00:03:11,010 --> 00:03:14,900 それはのif-elseのif-elseチェーンです。 67 00:03:14,900 --> 00:03:17,580 >> それはしかし可能であり、 時には非常に便利な、 68 00:03:17,580 --> 00:03:20,950 ないのチェーンを作成します 相互に排他的な枝。 69 00:03:20,950 --> 00:03:24,600 この例では、唯一の第三及び 第四枝は相互に排他的です。 70 00:03:24,600 --> 00:03:27,450 それはあなたができたことが考えられ 最初の条件を満足します、 71 00:03:27,450 --> 00:03:29,396 あなたは満足でした 第二の条件、 72 00:03:29,396 --> 00:03:31,770 あなたは満足でした 場合には第三condition-- 73 00:03:31,770 --> 00:03:35,270 あなたが最初の分岐を下に行くと、 あなたは、第二分岐を下ります 74 00:03:35,270 --> 00:03:37,000 その後、第三のブランチを下ることになります。 75 00:03:37,000 --> 00:03:40,450 それとも最初に満足します 条件、および第二の条件、 76 00:03:40,450 --> 00:03:42,770 しかし、あなたは満足していません 第3の条件。 77 00:03:42,770 --> 00:03:46,230 この場合は、最初に下ります ブランチと第二分岐、 78 00:03:46,230 --> 00:03:48,040 して、第四の枝、 79 00:03:48,040 --> 00:03:51,392 >> この理由は、他のことです 場合にのみ、最寄りにバインドします。 80 00:03:51,392 --> 00:03:53,100 だからだにもかかわらず、 他に、ここで、その 81 00:03:53,100 --> 00:03:56,490 必ずしも相互には作成されません すべての排他的なチェーン。 82 00:03:56,490 --> 00:04:00,890 それが唯一の表現です そこブールと 83 00:04:00,890 --> 00:04:05,040 表情3-- 他と相互に排他的。 84 00:04:05,040 --> 00:04:07,580 だから、可能であり、 時には非常に便利な、 85 00:04:07,580 --> 00:04:11,772 私が言ったように、チェーンを作成します 相互に排他的ではない分岐します。 86 00:04:11,772 --> 00:04:14,230 のは、別のを見てみましょう 条件の種類、どの 87 00:04:14,230 --> 00:04:17,392 あなたがスクラッチで前に見たことがありません。 88 00:04:17,392 --> 00:04:19,369 呼ばれるものがあります switch文。 89 00:04:19,369 --> 00:04:21,410 switch文はあります それはだからちょっとすっきり 90 00:04:21,410 --> 00:04:25,930 ことができます条件文 あなたは、個別のケースを指定します 91 00:04:25,930 --> 00:04:28,926 代わりにブールに頼るの あなたのための意思決定を行うための表現。 92 00:04:28,926 --> 00:04:31,050 したがって、たとえば、のは言わせて 私はこのプログラムを持っていること、 93 00:04:31,050 --> 00:04:34,110 そして、私は、ユーザーが求めています 私に入力を提供します。 94 00:04:34,110 --> 00:04:37,170 だから私は言う、int型のx =)(INTを取得し、 あなたがまだ慣れていない場合は、 95 00:04:37,170 --> 00:04:40,190 取得intがある機能です また、CS50ライブラリに含ま 96 00:04:40,190 --> 00:04:44,610 あなたがCS50.Hを#includeので、もしあなたが持っているでしょう INT()とそのすべてを取得するためのアクセス 97 00:04:44,610 --> 00:04:46,840 cousins​​--はGetFloat、 getStringなど。 98 00:04:46,840 --> 00:04:52,590 すべてのための基本的には、1つのGet関数 我々はすでに説明しましたデータ型。 99 00:04:52,590 --> 00:04:53,970 >> だからint型のxはGetIntでは等しいです。 100 00:04:53,970 --> 00:04:56,390 基本的には何が起こっていますか 私はターミナルでだです。 101 00:04:56,390 --> 00:04:58,790 私は数を入力するようユーザーに求めています。 102 00:04:58,790 --> 00:05:02,300 >> そして、ここで私が切り替えています 私がやって、依存 103 00:05:02,300 --> 00:05:05,060 ユーザーがプロンプトで入力した内容に。 104 00:05:05,060 --> 00:05:09,147 彼らはいずれかを入力した場合そう、私は1つをプリントアウト。 105 00:05:09,147 --> 00:05:09,855 そして私が壊します。 106 00:05:09,855 --> 00:05:12,590 107 00:05:12,590 --> 00:05:15,510 彼らは2を入力した場合、私は2つをプリントアウト。 108 00:05:15,510 --> 00:05:16,690 そして私が壊します。 109 00:05:16,690 --> 00:05:19,060 それはに重要です それぞれの場合の区切り 110 00:05:19,060 --> 00:05:20,890 そうしないとあなたを介して分類されますので。 111 00:05:20,890 --> 00:05:23,380 だから私はいずれかを持っていなかった場合 そこにブレーク、およびユーザー 112 00:05:23,380 --> 00:05:31,380 型指定された1、それは何が起こるだろう 申し訳ありませんが、1、2、3を印刷します。 113 00:05:31,380 --> 00:05:33,099 それは右、奇妙な行動のようなものですか? 114 00:05:33,099 --> 00:05:33,890 あなたはそう思うかもしれません。 115 00:05:33,890 --> 00:05:36,480 しかし、いくつかのケースがどこに実際に存在します これはかなり便利なものになる可能性があります。 116 00:05:36,480 --> 00:05:39,730 そこでここでは、スイッチの別の例を示します。 私は休憩を省略声明。 117 00:05:39,730 --> 00:05:42,030 しかし、私はそれを目的にしてください。 118 00:05:42,030 --> 00:05:43,030 >> だから何がここになりますか? 119 00:05:43,030 --> 00:05:43,821 第二のために考えてみてください。 120 00:05:43,821 --> 00:05:45,960 あなたも、ビデオを一時停止することができます。 121 00:05:45,960 --> 00:05:48,230 >> 何があれば、ここで起こります ユーザーが4? 122 00:05:48,230 --> 00:05:51,190 123 00:05:51,190 --> 00:05:53,860 だから私は、ユーザーに入力を求めてきました。 124 00:05:53,860 --> 00:05:56,560 そして、彼らは値4を提供しています。 125 00:05:56,560 --> 00:05:59,545 私はそれを行う際にどのような印刷されますか? 126 00:05:59,545 --> 00:06:02,170 前のスライドでは、ありました すべてのケースの間に休憩。 127 00:06:02,170 --> 00:06:04,750 そしてそれはちょうどだろう 4を印刷した後、停止します。 128 00:06:04,750 --> 00:06:06,610 しかし、この場合には、そうではないであろう。 129 00:06:06,610 --> 00:06:10,700 何が起こるであろうことはあなたです それぞれのケースを通って落下します。 130 00:06:10,700 --> 00:06:14,890 >> したがって、この場合、私は私の例を組織しました もしユーザーが4となるように、 131 00:06:14,890 --> 00:06:20,070 私が印刷されます4、3、 2、人は、飛び立ちます。 132 00:06:20,070 --> 00:06:22,780 彼らは5を入力した場合、私は開始します 5時と同じことを行います。 133 00:06:22,780 --> 00:06:26,410 彼らは1を入力した場合、私は希望 ただ、いずれかの操作を行い飛び立ちます。 134 00:06:26,410 --> 00:06:28,715 >> したがって、この場合には、私が使用しています スイッチの種類の巧みので 135 00:06:28,715 --> 00:06:30,804 私は落ちるつもりありません すべてのケースを通じ。 136 00:06:30,804 --> 00:06:33,720 しかし、一般的に、あなたはおそらくつもりです それらのすべての間でブレークしたいです、 137 00:06:33,720 --> 00:06:36,090 あなたは状況がない限り、 あなたがしているこのような 138 00:06:36,090 --> 00:06:40,081 あなたがよその事実を活用するの一種 ブレークせずに例を通って落下。 139 00:06:40,081 --> 00:06:42,830 だから、大手の第二のです 条件文の種類。 140 00:06:42,830 --> 00:06:47,139 ?これの最後は次のようになります。だから私 ここでは、Cコードの2スニペットを持っています。 141 00:06:47,139 --> 00:06:48,680 左の一つと右の。 142 00:06:48,680 --> 00:06:52,330 左に1つべきです おそらくあなたにかなり精通しています。 143 00:06:52,330 --> 00:06:55,110 >> 私はint型xを持っています。 144 00:06:55,110 --> 00:06:57,167 そして、私はおそらくべき ユーザーが求めています 145 00:06:57,167 --> 00:07:00,250 これはおそらく、int型のxであるべきfor-- GetIntで、またはそのような何かに等しいです。 146 00:07:00,250 --> 00:07:03,030 147 00:07:03,030 --> 00:07:05,240 そして私は、意思決定をするんです。 148 00:07:05,240 --> 00:07:11,700 いくつかのブール式がある場合 真、値5×割り当てます。 149 00:07:11,700 --> 00:07:13,590 それ以外の場合は、値6×割り当てます。 150 00:07:13,590 --> 00:07:16,548 >> 左側のそれはおそらくあるべきです 私たちの議論から、かなりおなじみの 151 00:07:16,548 --> 00:07:18,160 ちょっと前にそうであれば。 152 00:07:18,160 --> 00:07:20,535 あなたが知って驚くだろう 右側のラインその 153 00:07:20,535 --> 00:07:22,310 まったく同じことをしますか? 154 00:07:22,310 --> 00:07:26,140 >> だから、これが呼び出されます:?または時々 三項演算子と呼ばれます。 155 00:07:26,140 --> 00:07:27,450 そしてそれはかなりクールです。 156 00:07:27,450 --> 00:07:29,110 これは通常、かわいいトリックとして使われています。 157 00:07:29,110 --> 00:07:35,777 >> しかし、それはあなたが行うことができますすることにあります 本当に小さいとそうでない場合をシミュレートし、 158 00:07:35,777 --> 00:07:37,610 本当に些細なショート 条件分岐。 159 00:07:37,610 --> 00:07:41,470 あなたは、一般的に使用することはありません:?よろしければ 各セット間のコードの6行を持っていました 160 00:07:41,470 --> 00:07:42,569 中括弧の。 161 00:07:42,569 --> 00:07:44,360 しかし、あなたはちょうどなら 迅速な意思決定を行います、 162 00:07:44,360 --> 00:07:47,520 あなたは一つのことをやろうとしている場合 または他の、それは非常に簡単です、 163 00:07:47,520 --> 00:07:52,240 これは方法の例であるかもしれません でそれを行う:?三項演算子を。 164 00:07:52,240 --> 00:07:56,940 だからint型のxは式が等しいですか? 165 00:07:56,940 --> 00:07:59,470 質問した後のこと マークは何のxの値であります 166 00:07:59,470 --> 00:08:02,690 式が真である場合になります。 167 00:08:02,690 --> 00:08:05,330 >> 後の事 コロンは何のxの値であります 168 00:08:05,330 --> 00:08:07,990 式がfalseだった場合であろう。 169 00:08:07,990 --> 00:08:11,510 だから私は自分自身を求めています、 式は本当ですか? 170 00:08:11,510 --> 00:08:13,870 それがある場合は、値5×割り当てます。 171 00:08:13,870 --> 00:08:16,619 そうでない場合は、値6×割り当てます。 172 00:08:16,619 --> 00:08:17,410 繰り返しますが、私のように述べています。 173 00:08:17,410 --> 00:08:18,670 これは通常、単にかわいいトリックです。 174 00:08:18,670 --> 00:08:20,430 そして、時にはあなたがなっている場合 実際にそれに慣れて、 175 00:08:20,430 --> 00:08:22,820 それが見えるので、あなたはこれをやります あなたのプログラムでクールのようなもの。 176 00:08:22,820 --> 00:08:25,710 一般的に私はそれを提示しますよ あなたは今、あなたはそれに慣れています 177 00:08:25,710 --> 00:08:26,990 あなたはそれを参照してください場合。 178 00:08:26,990 --> 00:08:30,080 しかし、確かにあなたが持っていない知っています あなたのコードのいずれかでそれを書き込むことができます。 179 00:08:30,080 --> 00:08:33,246 しかし、それはに精通しているものです、 あなたは間違いなく遭遇するだろうから 180 00:08:33,246 --> 00:08:36,130 ここでは、コードのスニペットと そこにどこにこの:?構文、 181 00:08:36,130 --> 00:08:39,120 三項演算子AKA、使用されています。 182 00:08:39,120 --> 00:08:40,960 >> 上そう簡単にまとめ 何条件文であり、 183 00:08:40,960 --> 00:08:44,210 オプションが利用可能ですか あなたが持っているCであなたにIfとのif-else、 184 00:08:44,210 --> 00:08:46,860 そして、あれば他の場合、エトセトラ。 185 00:08:46,860 --> 00:08:50,880 あなたはブール式を使用することができます それらのための意思決定を行います。 186 00:08:50,880 --> 00:08:53,720 >> switch文を使用すると、使用します 意思決定を行うための個別のケース。 187 00:08:53,720 --> 00:08:57,540 それはだ場合は、具体的には、と言うでしょう 1、または、2つの場合は、またはそれが3の場合は、 188 00:08:57,540 --> 00:09:00,870 私はこのことを行う、またはよ この事か、この事。 189 00:09:00,870 --> 00:09:04,660 そして:?置き換えるために使用することができます 非常に簡単なのif-else分岐し、 190 00:09:04,660 --> 00:09:08,490 またはのif-elseチェーンが作ります あなたのコードは少し空想に見えます。 191 00:09:08,490 --> 00:09:09,250 >> 私はダグロイドです。 192 00:09:09,250 --> 00:09:11,410 そして、これはCS50です。 193 00:09:11,410 --> 00:09:12,959