1. 程式人生 > >練習5.18

練習5.18

循環 退出 語言 但是 get ++ 練習 語句 如果

5.18:說面下列循環的含義並改正其中的錯誤。

(a)do

    int v1 , v2;

    cout<<" Please enter two numbers to sum: ";

    if(cin>>v1>>v2)

      cout<<" Sum is : "<<v1+v2<<endl;

    while(cin);

(b)do {

    //...

   } while(int ival = get_response())

(c)do {

     int ival = get_response();

   } while (ival);

Ans:a)該程序的含義是定義兩個變量,然後輸入兩個變量的值求其和,最後判斷輸入流當中是否有值,若有則繼續,否則退出循環。C++規定do while語句在do之後如果有多條語句,需要將其使用花括號括起來形成一條復合語句(塊),否則編譯器會報錯。

修改之後:

  do {

    int v1 , v2;

    cout<<" Please enter two numbers to sum: ";

    if(cin>>v1>>v2)

      cout<<" Sum is : "<<v1+v2<<endl;

    } while(cin);

   b)該程序的含義是,執行循環體中的內容,然後判斷變量ival的值是否為0,若不為0,跳出循環;但是C++語言規定不能在do while語句的條件部分定義變量。

修改之後:

    int ival;

    do {

      //...

     } while(ival = get_response())

    c)該程序的含義與(b)一樣,只不過值的獲取是在循環體中。但是該程序定義的變量ival在循環體中定義,其作用域只在循環體當中,不能拿來作為while的條件。

修改之後:

    int ival;

    do {

         ival = get_response();

     } while (ival);

練習5.18