大丈夫。
だから今のは何かについて話しましょう programming--で本当に役に立ちます
条件文。
だから、条件式 あなたのプログラムを許可します
意思決定を行い、異なる取ります 道路のフォーク、何か
私は、少し前に示唆しました 変数の値に応じて、
またはに基づいて、どのようなユーザ入力で プログラマ、コマンドラインで、
またはプロンプトを持っている場合 またはそのような何か。
Cは異なるいくつかの方法があります 条件式を発現します
我々はまた、時々呼び出します あなたのプログラムで条件分岐。
そして、これらのいくつかは見に行くされています 最初からあなたにかなり精通して、
だから私たちも彼らを引っ張るだろう 並んでまで、ちょうど
あなたはあなたの頭の中でその類推を行うことができます。
>> だから、if--はかなりある場合 条件付きのシンプルな。
あなたがからリコールした場合 ここで右の傷
あなたはその中に埋めることができた六角形であります マウスダウンであれば青表情で
または、xが10未満であれば、 またはそのような何か。
そして、xが10未満であれば、 またはマウスがダウンして、実際にあった場合は、
コー​​ドのすべての内部 パズルのピースが実行されます。
フィットすべてのもの そのC字状の内側。
>> 同様に、私たちは持っています そこに左の場合。
ブール式の場合、 これは私が使用しています
ブールの一つの代わりとして 我々は前に述べた式、
中括弧、近くに中括弧を開きます。
だから、オープンカーリー考えます ブレースと閉じ中括弧
挟むようにソートの類似 右側の場合はブロックの効果
最初から。
>> ブール式の場合 if文では、真であります
コー​​ドのすべての行 中括弧の間
順番に実行されます 上から下へ。
ブール式の場合 偽である、我々はよ
間ですべてをスキップ 中括弧、我々は唯一の理由
道路でそのフォークを下に行きたいです ブール式が真である場合。
>> 我々は、この一歩を取ることができます さらに他の場合で。
したがって、このスクラッチブロックであります 1とよく似て
我々は除いて、ちょうど秒前見ました それがベースの2つの異なるパスを取ります
何が起こるかについて。
マウスが押されていたのであれば、 またはxは、10未満であった場合
我々は、間にだすべてをやります その最初のフォーク、その最初℃、
>> そうでなければ、マウスである場合 アップ、またはxが10以上であり、
我々は、第二​​の組に全力を尽くします。
そして、それはあなたが見るものに類似です ここでCのブール式の場合、
間のものを行います 中括弧の最初のセット。
そうでなければ、間のものを行います 中括弧の第二のセット。
ブールもしそうであれば 式が真である、我々はよ
最初のセットの間で何でもやります。
ブール式がある場合 偽、それは他のトリガーとなります、
我々はにどんなのをするだろう 中括弧の第二のセット。
ここでも、上から下に、すべての 中括弧の間の行。
>> Cでは、それが作成することが可能です if-elseのif-elseチェーン。
実際にあなたが持つことができるのif-elseのif-else if-elseようにそうであれば、というように、と
上。
スクラッチでは、これは、必要な ブロックをネスト。
あなたはのif-elseを追加し、あなたがしなければなりませんでした 他の内側に別のものを入れて、
ように、それは親切です ネストされた、複雑なの。
しかしCは、我々はそれを行う必要はありません。
私たちは実際にちょうど持つことができます それは、このような鎖であること。
繰り返しますが、あなたは、すべてを期待するかもしれないとして、 これらのブランチは相互に排他的です。
あなたは今まで行くことができます ブランチの1ダウン。
場合、これは本当です。
それ以外の場合は、これがtrueの場合。
それ以外の場合は、これを行います。
したがって、この中の枝のすべての4つの 例では、相互に排他的です。
それはのif-elseのif-elseチェーンです。
>> それはしかし可能であり、 時には非常に便利な、
ないのチェーンを作成します 相互に排他的な枝。
この例では、唯一の第三及び 第四枝は相互に排他的です。
それはあなたができたことが考えられ 最初の条件を満足します、
あなたは満足でした 第二の条件、
あなたは満足でした 場合には第三condition--
あなたが最初の分岐を下に行くと、 あなたは、第二分岐を下ります
その後、第三のブランチを下ることになります。
それとも最初に満足します 条件、および第二の条件、
しかし、あなたは満足していません 第3の条件。
この場合は、最初に下ります ブランチと第二分岐、
して、第四の枝、
>> この理由は、他のことです 場合にのみ、最寄りにバインドします。
だからだにもかかわらず、 他に、ここで、その
必ずしも相互には作成されません すべての排他的なチェーン。
それが唯一の表現です そこブールと
表情3-- 他と相互に排他的。
だから、可能であり、 時には非常に便利な、
私が言ったように、チェーンを作成します 相互に排他的ではない分岐します。
のは、別のを見てみましょう 条件の種類、どの
あなたがスクラッチで前に見たことがありません。
呼ばれるものがあります switch文。
switch文はあります それはだからちょっとすっきり
ことができます条件文 あなたは、個別のケースを指定します
代わりにブールに頼るの あなたのための意思決定を行うための表現。
したがって、たとえば、のは言わせて 私はこのプログラムを持っていること、
そして、私は、ユーザーが求めています 私に入力を提供します。
だから私は言う、int型のx =）（INTを取得し、 あなたがまだ慣れていない場合は、
取得intがある機能です また、CS50ライブラリに含ま
あなたがCS50.Hを#includeので、もしあなたが持っているでしょう INT（）とそのすべてを取得するためのアクセス
cousins​​--はGetFloat、 getStringなど。
すべてのための基本的には、1つのGet関数 我々はすでに説明しましたデータ型。
>> だからint型のxはGetIntでは等しいです。
基本的には何が起こっていますか 私はターミナルでだです。
私は数を入力するようユーザーに求めています。
>> そして、ここで私が切り替えています 私がやって、依存
ユーザーがプロンプトで入力した内容に。
彼らはいずれかを入力した場合そう、私は1つをプリントアウト。
そして私が壊します。
彼らは2を入力した場合、私は2つをプリントアウト。
そして私が壊します。
それはに重要です それぞれの場合の区切り
そうしないとあなたを介して分類されますので。
だから私はいずれかを持っていなかった場合 そこにブレーク、およびユーザー
型指定された1、それは何が起こるだろう 申し訳ありませんが、1、2、3を印刷します。
それは右、奇妙な行動のようなものですか？
あなたはそう思うかもしれません。
しかし、いくつかのケースがどこに実際に存在します これはかなり便利なものになる可能性があります。
そこでここでは、スイッチの別の例を示します。 私は休憩を省略声明。
しかし、私はそれを目的にしてください。
>> だから何がここになりますか？
第二のために考えてみてください。
あなたも、ビデオを一時停止することができます。
>> 何があれば、ここで起こります ユーザーが4？
だから私は、ユーザーに入力を求めてきました。
そして、彼らは値4を提供しています。
私はそれを行う際にどのような印刷されますか？
前のスライドでは、ありました すべてのケースの間に休憩。
そしてそれはちょうどだろう 4を印刷した後、停止します。
しかし、この場合には、そうではないであろう。
何が起こるであろうことはあなたです それぞれのケースを通って落下します。
>> したがって、この場合、私は私の例を組織しました もしユーザーが4となるように、
私が印刷されます4、3、 2、人は、飛び立ちます。
彼らは5を入力した場合、私は開始します 5時と同じことを行います。
彼らは1を入力した場合、私は希望 ただ、いずれかの操作を行い飛び立ちます。
>> したがって、この場合には、私が使用しています スイッチの種類の巧みので
私は落ちるつもりありません すべてのケースを通じ。
しかし、一般的に、あなたはおそらくつもりです それらのすべての間でブレークしたいです、
あなたは状況がない限り、 あなたがしているこのような
あなたがよその事実を活用するの一種 ブレークせずに例を通って落下。
だから、大手の第二のです 条件文の種類。
？これの最後は次のようになります。だから私 ここでは、Cコードの2スニペットを持っています。
左の一つと右の。
左に1つべきです おそらくあなたにかなり精通しています。
>> 私はint型xを持っています。
そして、私はおそらくべき ユーザーが求めています
これはおそらく、int型のxであるべきfor-- GetIntで、またはそのような何かに等しいです。
そして私は、意思決定をするんです。
いくつかのブール式がある場合 真、値5×割り当てます。
それ以外の場合は、値6×割り当てます。
>> 左側のそれはおそらくあるべきです 私たちの議論から、かなりおなじみの
ちょっと前にそうであれば。
あなたが知って驚くだろう 右側のラインその
まったく同じことをしますか？
>> だから、これが呼び出されます：？または時々 三項演算子と呼ばれます。
そしてそれはかなりクールです。
これは通常、かわいいトリックとして使われています。
>> しかし、それはあなたが行うことができますすることにあります 本当に小さいとそうでない場合をシミュレートし、
本当に些細なショート 条件分岐。
あなたは、一般的に使用することはありません：？よろしければ 各セット間のコードの6行を持っていました
中括弧の。
しかし、あなたはちょうどなら 迅速な意思決定を行います、
あなたは一つのことをやろうとしている場合 または他の、それは非常に簡単です、
これは方法の例であるかもしれません でそれを行う：？三項演算子を。
だからint型のxは式が等しいですか？
質問した後のこと マークは何のxの値であります
式が真である場合になります。
>> 後の事 コロンは何のxの値であります
式がfalseだった場合であろう。
だから私は自分自身を求めています、 式は本当ですか？
それがある場合は、値5×割り当てます。
そうでない場合は、値6×割り当てます。
繰り返しますが、私のように述べています。
これは通常、単にかわいいトリックです。
そして、時にはあなたがなっている場合 実際にそれに慣れて、
それが見えるので、あなたはこれをやります あなたのプログラムでクールのようなもの。
一般的に私はそれを提示しますよ あなたは今、あなたはそれに慣れています
あなたはそれを参照してください場合。
しかし、確かにあなたが持っていない知っています あなたのコードのいずれかでそれを書き込むことができます。
しかし、それはに精通しているものです、 あなたは間違いなく遭遇するだろうから
ここでは、コードのスニペットと そこにどこにこの：？構文、
三項演算子AKA、使用されています。
>> 上そう簡単にまとめ 何条件文であり、
オプションが利用可能ですか あなたが持っているCであなたにIfとのif-else、
そして、あれば他の場合、エトセトラ。
あなたはブール式を使用することができます それらのための意思決定を行います。
>> switch文を使用すると、使用します 意思決定を行うための個別のケース。
それはだ場合は、具体的には、と言うでしょう 1、または、2つの場合は、またはそれが3の場合は、
私はこのことを行う、またはよ この事か、この事。
そして：？置き換えるために使用することができます 非常に簡単なのif-else分岐し、
またはのif-elseチェーンが作ります あなたのコードは少し空想に見えます。
>> 私はダグロイドです。
そして、これはCS50です。