2017年09月07日
《その18》 p.70 代替表現(and,or),p.77演習2-17,演習2-18
新版 明解C++ 入門編 p.70 代替表現
p.70に
「論理積演算子&& の代わりに and を、論理和演算子|| の代わりに or を 用いることができる。」
と書かれています。
p.71に
「代替表現がサポートされていない処理系では、<ciso646>ヘッダのインクルードを試してみる。」
と書かれています。
私の使っている処理系では、<ciso646>ヘッダのインクルードが必要でした。
・・・ということは、サポートされていないんですね (_ _ |||
// p071_List2-19
#include <iostream>
#include <ciso646>
using namespace std;
int main()
{
int y;
cout << "年を入力せよ:";
cin >> y;
cout << "その年は閏年";
if (y % 4 == 0 and y % 100 != 0 or y % 400 == 0)
cout << "です。\n";
else
cout << "ではありません。\n";
}
新版 明解C++ 入門編 p.77 演習2-17
double a;
int b;
a = b = 1.5;
代入演算子は右結合なので
a = b = 1.5;
は
a = (b = 1.5);
と解釈されて、まず b = 1.5 によって bに 1が代入されます(bは int型なので、1.5は受け取れない)。
代入式 b = 1.5 は 1(int型 b の値)と評価され、その 1が aに代入されます。
a は double型ですから、aの値は実数1となるはずです。
以上のことから、aの値は実数1,bの値は整数1 になります。
新版 明解C++ 入門編 p.77 演習2-18
if (a = 0) c = 3;
( ) の中の 条件 a = 0 は、代入後の aの値である 0と評価されます。条件 0 は falseと見なされ、
if (条件) 文;
の 文は実行されません。
なので、この if文は 何もしません。
--
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/6674724
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック