練習5.1 NULL文とは何ですか?場合は空文?
構文は声明を必要としますが、論理的に必要としない、彼らは空のステートメントを使用することができたときに空のステートメントは、何のアクション文ではありません。
練習5.2ブロックとは何ですか?何をするときのブロックに使用されるのですか?
ブロックは、ステートメントの構文が必要な場合は、中括弧で囲まれた文と宣言の順序であるが、論理ステートメントのセットを必要とし、あなたはブロックを使用することができます。
コンマ演算子のセクション1.4.1書き換えで練習5.3 while
サイクル、それが必要なブロックは、読みやすくするために、コードを書き換えた後に観察または減少しなくなりました。
while (val <= 10)
sum += val, ++val;
私は、コードは本当に簡単になっていると思いますが、可読性が低下します。
練習5.4次の例では、問題がある場合は、それを変更しようとすると、意味を説明します。
(a) while (string::iterator iter != s.end()) { /* . . . */ }
(b) while (bool status = find(word)) { /* . . . */ }
if (!status) { /* . . . */ }
()文はイテレータを使用したいようだiter
トラバースにs
、しかしイテレータがされた場合にiter
書かれた中で定義されたwhile
判断条件記述、各サイクルを再定義しますiter
明らかに間違っています、。正しい表現をすべきでiter
定義されたwhile
外部ループ。
(b)は、while
文とif
文は、独立の2つのコード・ブロックであり、定義while
変数のステートメントがstatus
されていないif
アクセス、正しい表現されるべきでstatus
定義されたwhile
ループ、または前にif
取得するステートメントwhile
裁判官にサイクル。
else文は、文字の等級の要件を達成するために数を変換する場合は使用して、自分自身のプログラム5.5書き込みを行使する。
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
int grade;
vector<string> souce = { "F", "D", "C", "B", "A", "A++" };
while(cin >> grade){
string lettergrade;
if (grade < 60) {
lettergrade = souce[0];
}
else {
lettergrade = souce[(grade - 50) / 10];
}
if (grade == 100 || grade < 60) {
}
else {
if (grade % 10 > 7) {
lettergrade += "+";
}
else if (grade % 10 < 3) {
lettergrade += "-";
}
}
cout << lettergrade << endl;
}
return 0;
}
練習5.6は、手続きの問題、代わりの条件演算子の使用に書き換えif else
声明。
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
int grade;
vector<string> souce = { "F", "D", "C", "B", "A", "A++" };
while(cin >> grade){
string lettergrade = grade < 60 ? souce[0] : souce[(grade - 50) / 10];
lettergrade += (grade == 100 || grade < 60) ? "" : (grade % 10 > 7) ? "+" : (grade % 10 < 3) ? "-" : "";
cout << lettergrade << endl;
}
return 0;
}
練習5.7は、次のコードスニペットのエラーを書き換えます。
(a) if (ival1 != ival2)
ival1 = ival2
else
ival1 = ival2 = 0;
(b) if (ival < minval)
minval = ival;
occurs = 1;
(c) if (int ival = get_value())
cout << "ival = " << ival << endl;
if (!ival)
cout << "ival = 0\n";
(d) if (ival = 0)
ival = get_value();
以下ival1 = ival2文の後に() ';'
。
(b)にすべきminval = ival;
とoccurs = 1;
中括弧の周り。
©れるべきif(!ival)
変更else
。
(d)はif (ival = 0)
交換する必要がありますif (ival == 0)
。
「ハングしているどのような練習5.8 else
」?C ++言語をどのように扱うかelse
句?
C ++の規定、それはまだ最も近いものと一致した場合に、他の距離。
練習5.9書き込みの一連の使用するプログラムif
の統計情報から文cin
のテキストを読んでどのように多くの母音を。
#include<iostream>
using namespace std;
int main()
{
char ch;
int sum_a = 0, sum_e = 0, sum_i = 0, sum_o = 0, sum_u = 0;
int vowelcnt = 0;
while(cin >> ch){
if (ch == 'a') {
++sum_a;
++vowelcnt;
}
else if(ch == 'e'){
++sum_e;
++vowelcnt;
}
else if (ch == 'i') {
++sum_i;
++vowelcnt;
}
else if (ch == 'o') {
++sum_o;
++vowelcnt;
}
else if (ch == 'u') {
++sum_u;
++vowelcnt;
}
}
cout << "acnt is: " << sum_a << endl;
cout << "ecnt is: " << sum_e << endl;
cout << "icnt is: " << sum_i << endl;
cout << "ocnt is: " << sum_o << endl;
cout << "ucnt is: " << sum_u << endl;
cout << "vowelcnt is: " << vowelcnt << endl;
return 0;
}
大文字で母音は、カウントされません場合は、次の練習5.10母音の統計が問題になる前に、当社のプログラムを達成するために存在します。プログラムは、両方の統計小文字の母音、また、新しい出会い「A」と「A」である統計大文字の母音は、インクリメントされなければならない書くaCnt
値を、というように。
#include<iostream>
using namespace std;
int main()
{
char ch;
int sum_a = 0, sum_e = 0, sum_i = 0, sum_o = 0, sum_u = 0;
int vowelcnt = 0;
while(cin >> ch){
switch (ch)
{
case 'a':
case 'A':
++sum_a;
++vowelcnt;
break;
case 'e':
case 'E':
++sum_e;
++vowelcnt;
break;
case 'i':
case 'I':
++sum_i;
++vowelcnt;
break;
case 'o':
case 'O':
++sum_o;
++vowelcnt;
break;
case 'u':
case 'U':
++sum_u;
++vowelcnt;
break;
default:
break;
}
}
cout << "acnt is: " << sum_a << endl;
cout << "ecnt is: " << sum_e << endl;
cout << "icnt is: " << sum_i << endl;
cout << "ocnt is: " << sum_o << endl;
cout << "ucnt is: " << sum_u << endl;
cout << "vowelcnt is: " << vowelcnt << endl;
return 0;
}