[音楽再生] DOUG LLOYD:こんにちは、そうしましょう Cの演算子の話を だから、私たちはすでに見てきた、実際には、 代入演算子に等しいです。 それは私たちがちょうど置くことができます 変数に値。 それは割り当てです オペレータは、単一の等号。 操作するため、作業には Cの値と変数と、 私たちは、オペレータの数を持っています 我々が使用することができます私たちの処分で。 のは、見てみましょう 一般的なもののいくつか 算術演算子で始まります。 ご想像のとおり、我々が行うことができます Cでかなり基本的な数学演算 私たちは、加算、減算、乗算、およびすることができます 、プラスを使用して数値を分割、マイナス、星 それぞれ、スラッシュ。 ここでの行のカップルです コー​​ドここで我々はそれを行います。 そこで、我々はint型xがyプラス1に等しいです。 どこかのように仮定してみましょう このコード行以上アップ 我々は、int型のyが10に等しいと言っていました。 xの値は、私の後に何 このコードの最初の行を実行しますか? あなたは11を言いましたか? あなたは正しいと思います。 何故ですか? まあ、yが10でした。 いくつかの私が言っているのint xは10プラス1に等しいです。 10プラス1が11です。 だから、値11を取得します 変数xに格納されています。 あまりにも悪くないですよね? どのようにこの次の行について コー​​ド? xはx回5に等しいです。 まあ、我々は実行する前に、 このコード行は、xは11でした。 だから、の値は何ですか Xのコード行の後に? 秒を取ります。 だから、xはx回5に等しいです。 xは11でした。 だから、xは11回5に等しいです。 または55。 あなたは55を言ったのであれば、あなたは正しいだろう。 さて、それは少し混乱するかもしれませんが、 割り当てはC言語で動作する方法と 右側の値が取得されます 左側の値に割り当てられています。 だから、最初の我々は、xの5倍を評価します。 そこで、11回5は55です。 そして、我々は、xにその値を格納します。 あった11 前今上書きされます。 このため、xの値は、現在55です。 うまくいけば、それは非常に簡単です。 あなたがきた別のオペレータがあります おそらく必ずしも聞いたことがありません これを呼ばれていますが、しました 確かに過去に働いていました あなたは長い間のあなたの日を覚えていれば バック小学校での分割方法。 これは、剰余演算子と呼ばれています。 それは何のモジュラスんです あなたの残りの部分を与えます あなたは、一緒に2つの数値を除算するとき。 私が言うのであれば、13で割ったもの 4、残りは何ですか? そして、その値が計算されます モジュラスオペレータによる。 だから、私はコードの行を持っています ここでは、int型のmは13 MOD 4に等しいです。 そして、私はコメントで、ここで言います そのMの値は、現在1です。 なぜ私はそれを言うのですか? さて、あなたの長い除算を行います 頭、あなたは第二のために私と一緒に負担している場合。 だから、私は4〜13で割っています。 図4は、13 3倍になります 1の残り​​の部分で。 そのように、基本的に、すべて 剰余演算子はありません それはときにわかりますです 除算は、あなたは残りの部分を取得します。 あなたはそれが実際だと思うかもしれません ないひどく便利なもの、 しかし、あなたは、実際に、驚かれると思います 頻度をその弾性によって、 オペレータが便利になることができます。 いくつかの問題があります 我々はそれに対処CS50をやります。 また、実行するための良いことです 乱数のようなもの。 そのため、たとえばあなたがしている場合 乱数発生器のことを聞きました、 それはあなたの番号を与えるために起こっています 0からのいくつかの巨大な数に。 しかし、多分あなただけは本当に 0〜20の番号が必要です。 あなたは、モジュラス演算子を使用する場合 その巨大な数のこと によって生成されます 乱数発生器、 あなたは何でも取るつもりです それは巨大な値は、20で割り、 余りを得ます。 残りすることができますのみ 0から19までの値です。 だから、あなたはモジュラス演算子を使用します この膨大な数を取ります そして、削るそれを何かに もう少し有意義。 私はあなたができるでしょうかなり確信しています それらの両方を使用することが CS50で将来のある時点で。 そこで、Cはまた、私たちの方法を提供します 算術演算を適用します 単一の変数へのオペレータ もう少し簡単な方法です。 だから、前のスライドで、 我々は、xがx回5等しいました。 それが働きました。 X回5は、その後のxに書き戻されます。 それを行うには、より短い方法が考えたのは、あります、 それは5に等しい構文x回です。 それは、まったく同じことです xがx回5に等しいと言って。 それは少しだけです それを行うための短い方法。 そして、あなたはいくつかのを見たとき 配布コードまたは そのいくつかのサンプルコードを参照してください このようなことを行い、 ちょうどに精通しています 構文は何を意味しますか。 あなたは確かにありま​​せん それを使用しますが、行う場合には、 それはあなたのコードを作るかもしれません 少しスリッカーに見えます。 そして、あなたはまた、のいずれかを使用することができます知っています 異なる事業者は我々はすでにしました 前に見たの代わりに倍。 あなたは、xプラス5、マイナスに等しいと言うことができます 5、回、分割、およびMODに等しいです。 これらの作業のすべて。 何かもあります それは、C言語でとても一般的です 私たちはすることを決めたこと さらにそれを絞り込みます。 1変数の増加 または1、変数をデクリメント 特に、一般的なthing--です 我々は少し後に、ループについて話すとき 我々は代わりのを決めたことをon-- 、Xのようなものを言って、プラス1に等しいです またはxがXプラス1に等しく、私たちもしました 短いことは、xプラスプラスに手渡しました。 だから、xはXプラス1で、xに等しいプラス1に等しく、 そしてxプラスプラスはすべて同じことを行います。 彼らは1すべての増分X。 しかし、それはインクリメント そして、1によってデクリメント 我々が持っているので、一般的です プラスプラスとマイナスのマイナス それは、私たちが速記することを可能にします さらにそれ。 それでは、第二のためにギアを切り替えることができます そして、ブール式について話しています。 また、一種のであるすべてはに落ちます 事業者の全体的なカテゴリ。 しかし、ブール式、 算術演算子とは異なり、 値を比較するために使用されます。 Cではだから、もう一度、すべてのブール式 二つの可能な値のいずれかに評価し、 想起。 正しいか間違っているか。 それは、二つの値だけです ブール変数を取ることができます。 私たちは、その結果を使用することができます ブール式の プログラミングにおける多くの方法です。 実際には、になるだろう この非常に多くのことをやって。 例えば、我々が決めるかもしれません、 よく、いくつかの条件が真である場合には、 多分私はこれを取りますよ 私のコードを下に分岐します。 条件、いわば。 我々はすぐにあまりにもそれらについて学びます。 それとも限り、 これは私が欲しい、真であります これをやって維持します 何度も繰り返し。 ループ。 どちらの場合も、私たちが使っていることを知っています ブール式、trueまたはfalse、 かどうかを決定します 特定のパスを取ります。 時々、私たちが作業しているとき ブール式で、 我々はBool型の変数を使用します。 あなたは宣言している可能性があります ブール値は、変数を入力 あなたはあなたの中に使用します ブール式。 しかし、あなたは常に行う必要はありません。 それは、C、すべての非0で、結局のところ 値が真の言って同じです。 あなたが宣言していた場合 Boolean型の変数、 そしてそれはだ、それを真の値を割り当て 整数の宣言と同じ し、値を代入します 1、2、3、または実際には任意の値 0以外の一切。 C言語であるため、すべての非0値はtrueです。 0は、他の一方で、falseです。 これはで来るかもしれません 知っておくと後で便利な、 しかし、心に留めておくべき何か。 私たちは常に使用する必要はありません ブール型変数ときに我々 ブール式を使用しています。 ブールの2つの主要なタイプがあります 我々がうまくいく表現。 論理演算子と 関係演算子。 言語があります ひどく重要ではありません。 それは私がそれらをグループ化しているだけでどのように本当にです。 そして、あなたは確かに、私はすぐに、と思いますよ 関係演算子が何であるかを理解します、 ときに我々彼らが何であるかに基づいて、 第二に、それらについて話しています。 しかし、必ずしも心配しないでください 用語論理演算子を記憶 または関係演算子。 私はちょうどそれをグループに使用しています 論理的な方法でそれら。 それでは、見てみましょう 3つの論理演算子 我々は非常に表示されますことを CS50でのプログラミングのビット プログラミングでより一般的。 論理ANDは、trueになるのは、 両方のオペランドが真である場合に限ります。 それ以外の場合はfalse。 それはどこを意味するのでしょうか? それでは、私が思っているとしましょう 私は私のコード内のポイント 2つの変数xとy。 そして、私はかどうかを決定したいです 私のコードで何かをします xが真であり、yがtrueの場合に基づきます。 場合、私はそれをやってみたいです それらの両方が真であります そうでなければ私はそれを下に行きたくありません パスは、それは私を支援するつもりはないので。 私が言うことができても、x &&場合はYです。 それは論理的なブール型になります x、yを比較表現 および特定のパスを取ります それらの値が何であるかに基づいて。 そこで、xがtrueであり、yがtrueの場合 ここで、この真理値表に基づいて、 だけにして、私たちはその道を行きます。 X、&&Y場合。 それだけtrue--だけですよ xがtrueで、yが真である場合はtrue。 どちらかが偽である場合、 私たちは、真理値表を見るように、 その後、xとyの両方が真ではありません。 だから、X&&Yはfalseです。 論理OR場合にのみ真であります 少なくとも一つのオペランドがtrueの場合。 それ以外の場合はfalse。 だから、論理AND必要 xとyの両方が真です。 論理和真であるXを必要とするまたはy 真であること、または、xとyの両方が真です。 だから、もう一度、我々は一種の発見します 状況で自分自身 ここで私たちは私たちのコードになるだろう、 私たちは道路の分岐点に到達しました。 そして、我々はダウンしたいです 特定のパスxがtrueの場合 またはyが真ではなく、 必ずしも場合の両方が真です。 しかし、両方に該当する可能性があれば。 そのように、xが真であり、yがある場合 trueの場合、私たちはその道を行きますよ。 xが真です。 そのうちの一つは右、本当ですか? xがtrueで、yがtrueの場合。 xが真であり、かつYが偽である場合、 それらの一つは依然として当てはまります。 だから、xまたはyがまだ本当です。 xが偽であり、かつyが真である場合、 そのうちの一つは右、まだ本当ですか? yは、この場合に、当てはまります。 だから、それは、xまたはyが真であることは事実です。 xが偽であり、yが偽である場合にのみ、 私たちは、その道を行っていません、 XもYいずれにも該当しないため。 さて、あなたが探している場合 画面で、今 どのようなことを疑問に思います 記号は、論理和のためです、 それは、垂直バーと呼ばれています。 そして、あなたはあなたのキーボードを見ている場合 分、私が今やっているように、 それはちょうど上に通常です ほとんどのキーボードで、キーを入力し、 バックスラッシュと同じキーに。 また、通常は正しいです 角括弧の隣にあります。 だから、それはあなたのキーであるかもしれません 過去にあまりを入力していません。 しかし、あなたがやっている場合 論理比較、 私たちがやっているだろうとして、 コー​​ス内の多くは、それはです に役立つことになるだろう その鍵を見つけて、それを使用しています。 だから、それは同じキーで通常です バックスラッシュとしてすぐ上入力してください。 最終的な論理演算子はありません。 ではなく、非常に簡単です。 それは、そのオペランドの値を反転させます。 xが真である場合、ないxはfalseです。 xが偽である場合、ないxが真です。 時には、このシンボルを聞きます バンや感嘆符と発音 か否か。 これはかなりすべて同じことです。 ケースではあなたが話されていることを聞き、 あなたは、それが何を意味するのかわかりません それだけで感嘆符です ポイントは、時にはそれはです カップルの異なるものと呼ばれます。 すべての権利なので、それはとり 論理演算子の世話。 それでは、についてお話しましょう 関係演算子。 繰り返しますが、この精通している場合 バック小学校で算数、 あなたはおそらく精通しています これらはすでにどのように動作するかと。 これらは、あなたが期待どおりに動作します。 だから、あまりそれはこの中で、本当だより 例えば、xがyよりも小さい場合。 xが4であり、もしそうであれば、yは 図6は、xがyよりも小さいです。 それは本当だ。 より少ないか等しいです かなり同様に動作します。 xが4であり、yは、次に、4である場合 Xは、Y以下です。 より大きい。 xがyよりも大きいです。 そして、より大きいか、xに等しく Y以上です。 それが本当なら、あなたはよ その式を渡し、 あなたがダウンして行きますよ 道路上のそのパス。 xがyよりも大きい場合、あなたが持っている場合は、 xは、実際には、Yよりも大きくなっています、 あなたは何でもやります その条件に従います。 私たちが持っていないことに注意してください 未満のための単一の文字 または同等のあなたがかもしれないように 数学の教科書から精通。 そこで、シンボル未満を有します 等号が続きます。 それは我々が表現する方法です 以下に等しいです。 そして同様に、我々はそれを行うのですか より大きいか等しいため。 最後の二つの関係 重要であり、事業者 平等と不平等のためにテストしています。 そこで、xが等しい場合は、yに等しく、真であります xとyの値が同じであれば。 xが10であり、yは、次に、10であれば xがyが真であると等しい等しいです。 xが10であり、yが11である場合、X yが真ではないに等しい等しいです。 また、使用して不平等のためにテストすることができます 感嘆符または強打かどうか、 またですか。 xがyに等しくない場合、もし それは、私たちがここで使用しているテストです 我々は行ってもいいだろう。 そのように、xが等しくない場合 yは、私たちはその道を行きますよ。 ここでは本当に注意してください。 それは本当に共通mistake--だと 1、私は確かに作られた非常に多くの時 私はstarted--なっていました うっかり間違え 代入演算子は、単一の等号、 等価比較演算子のため、 ダブル等号。 これは、いくつかの奇妙につながるでしょう あなたのコード内での行動、 そして、通常コンパイラは、意志 あなたがしようとすると、それについて警告 時には、あなたのコードをコンパイルしますが、 あなたがしてそれをこっそりすることができるかもしれません。 それは必ずしも良いことではありません あなたがが、ことによってそれをこっそりいます。 ちょうどあなたがやっているかのように 不等式テスト、 あなたが2かどうかをチェックしている場合 別の変数は、同じ値を持ちます それらの内側に、使用することを確認してください イコールではなく、単一相当します。 そして、そのように、あなたのプログラムは、意志 あなたは予定の行動を持っています。 私はダグロイドだと、これはCS50です。