练习5.18
(a) do后面没加花括号,添加后,整个代码是为了计算2个数相加的结果。
int main(){
do
{
int v1, v2;
cout << "Please enter two numbers to sum:";
if (cin >> v1 >> v2)
cout << "Sum is: " << v1 + v2 << endl;
} while (cin);
}
(b)
int main(){
do
{
} while (int ival = get_response()); //错误:将变量声明放在了do的条件部分
}
© do中定义的变量只在do语句块的作用域内有用,因此while中的条件语句不知道ival是什么,把ival放在do语句块之外即可。
int main(){
int ival = 1;
do
{
} while (ival);
}
练习5.19
int main(){
do
{
string s1, s2;
cout << "Please enter two strings:";
if (cin >> s1 >> s2)
if (s1.size() > s2.size())
cout << s2 << endl;
else if (s1.size() == s2.size())
cout << "same length" << endl;
else
cout << s1 << endl;
} while (cin);
}