C++Primer第五版 5.3.1节练习

练习5.5:写一段自己的程序,使用ifelse语句实现把数字转换成字母的要求。
练习5.6:改写上一题的程序,使用条件运算符(参见4.7节,第134页)代替ifelse语句。
练习5.7;改正下面代码段中的错误。

(a) 
if (ivall != iva12)
ivall = ival12;
else ival1 = ival2 = 0;//else ival1 = 0, ival2 = 0;

(b) if(ival < minval)
    minval = ival;}
    occurs = 1;

if(ival < minval)
    {
minval = ival;
    occurs = 1;
 }
(c)if (int ival = get_value())
    cout << “ival = ” << ival << endl;

答:

 int ival =0 ;
if (ival = get_value())
    cout << “ival = ” << ival << endl;
(d) if (ival = 0)
    ival = get_value(); 
答:if (ival == 0) ival = get_value();

练习5.8:什么是悬垂else?C++语言是如何处理else子句的?
答:当一个if语句嵌套在另外一个if语句内部时,很可能if分支会多于else分支,某个给定的else与哪个if匹配是个问题。这就是悬垂else。 C++处理悬垂else方式是就近匹配if

你可能感兴趣的:(C++Primer学习)