n--,--n,分析

本文深入解析C++中两种不同的循环结构及其在不同场景下的应用,通过具体实例对比了前置递减(--n)与后置递减(n--)在while循环中的行为差异,同时探讨了复合条件判断在循环控制中的执行顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里写两个程序、下面打出来的是1-99,和0

#include <iostream>
using namespace std;

int main()
{
    int n = 100;
    while(--n){
        cout<<n;
    }
    cout<<endl;
    cout<<n;
   return 0;
}

下面输出的数据是0-99 

#include <iostream>
using namespace std;

int main()
{
	int n = 100;
	while(n--){
		cout<<n<<endl;
	}
    cout<<n;
   return 0;
}

归结原因就是--n先执行--,当n此时是1,在循环里面,先执行-- 操作之后就是0,while循环不是真,不会进入循环打印不出0;但是后面直接cout会cout 0 ,因为此时是0;

n--就是后执行--,当n=1的时候,while内部循环满足为真,而后再执行-1操作,会进入循环,打印出0这个数。,此时循环还没跳出,还会执行while n = 0的时候,然而在执行while里面的时候,不满足,n=-1,会cout出来。

 

 

#include <iostream>
using namespace std;

int main(){
	int x = 0, y = 5, z = 3;
	while(++x<5 && z-->0 ){
		cout<<z<<endl;
		y= y - 1;
	}
	
	printf("%d, %d, %d\n", x, y, z);
	return 0;
}

/*输出2
1
0
4, 2, -1*/

while里面也是先执行前面后执行后面如果例如

如果while(z-->0&&++x<5) z--不满足大于0了,后面就不会执行,直接跳出来

 

#include <iostream>
using namespace std;

int main(){
	int x = 0, y = 5, z = 3;
	while(z-->0 && ++x<5){
		cout<<z<<endl;
		y= y - 1;
	}
	
	printf("%d, %d, %d\n", x, y, z);
	return 0;
}

/*输出
2
1
0
3, 2, -1*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值