关于C++的嵌套问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 20:43:36
以下程序
#include<iostream>
using namespace std;
int main()
{
int i(1),a(0);
for(;i<=5;i++)
{
do
{
i++;
a++;
}
while(i<3);
i++;
}
cout<<i<<"."<<a<<endl;
}
运算结果是 8 . 3

小弟刚学C++ 实在没理解到这个式子的运算次序,就连里面那个do while的运算结果为什么是4 3都没搞懂 我开始还以为是3 2

麻烦哪位高手指点一下
里面的运算结果4 2我懂了 但是总的运算结果 8。3 我没懂

每运行一步,记下 i 和 a 的值就清楚了
开始 i=1,a=0
进入for循环
--------------------------------for(第一次)
i<=5 执行for循环
------------------------do
进入do-while循环
i++,a++ -> i=2,a=1
i<3 循环
i++,a++ -> i=3,a=2
i>3 退出do-while
------------------------
i++ -> i=4
-------------------------------for(第二次)
i++ -> i=5
i<=5 执行for循环
---------------------do
进入do-while
i++,a++ -> i=6,a=3
i>3 退出do-while循环
i++ -> i=7
---------------------
i++ -> i=8
i>5 退出for循环
***************************************
for(表达式1;表达式2;表达式3)
for语句的执行顺序是:
第一次进入for时,执行表达式1
然后执行表达式2,若表达式2为真,则执行循环体
循环体执行完后,执行表达式3,
再判断表达式2的真假...
do-while语句的执行顺序是先执行循环体,再判断循环条件的真假

我来解答
do
{
i++;
a++;
}
while(i<3);
do-while语句是无论如何都至少执行一次大括号里面的内容的,因为是先do再while判断。
int main()
{
int i(1),a(0); //i和a的初始化
for(;i<=5