鱼C论坛

 找回密码
 立即注册
查看: 1651|回复: 2

C++简单for循环求助

[复制链接]
发表于 2023-3-17 20:38:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <iostream>
using namespace std;
int main()
{
        cout << "Enter the starting countdown value:";   //countdown:倒数读秒    (输入开始倒计时的值)
        int limit,i;
        cin >> limit;
        for (i = limit; i; i--)
                cout << "i=" << i << "\n";
        cout << "Done now that i=" << i << "\n";
        return 0;

}


for循环,测试表达式的那个i是起什么作用,为什么最后在0结束
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-17 20:55:05 | 显示全部楼层
i 在 1 结束,而你最后是在循环外面打印 i,(虽然循环结束条件已经成立了,但最后i还自减一,1 - 1 = 0)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-18 11:29:32 | 显示全部楼层
for (i = limit; i; i--)
第一个表达式i=limit也就是i=你输入的数
第二个表达式只要i>0为真,i<=0为假,也就是说i>0 for语句就会运行
第三个i--,就是可以理解为先自减后判断
--i意思是先判断后自减
你可以执行以下语句看看:
    char n=0,i=10;
    printf("现在执行的是i--,目前n=%d,i=%d\n",n,i);
    for ( i =i; i>=0 ; i--) {
        n++;
        printf("第%d次执行,i=%d\n",n,i);
    }
    printf("执行完毕,i=%d\n",i);
    n=0,i=10;
    printf("现在执行的是--i,目前n=%d,i=%d\n",n,i);
    for (i=i; i>=0; --i) {
        n++;
        printf("第%d次执行,i=%d\n",n,i);
    }
    printf("执行完毕,i=%d\n",i);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 11:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表