为了账号安全,请及时绑定邮箱和手机立即绑定

if 语句和后增量作业:我没有得到我期望的结果 - 为什么?

if 语句和后增量作业:我没有得到我期望的结果 - 为什么?

C#
FFIVE 2023-08-20 14:37:39
抱歉,如果这是一个愚蠢的初学者问题,但我完全被难住了。int i = 0;if (i == 0)    i++;    i++;if (i == 3)    i += 2;    i += 2;Console.WriteLine(i);好的,我的逻辑是,如果i = 0,添加1,然后添加1到该内容。所以最后i = 2。除非不是,否则它会打印出来4。唯一可能发生的情况是它通过了第二个“if 语句”。正确的?我缺少什么?
查看完整描述

2 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

是的,是的4,让我们格式化代码(右缩进)并查看:


int i = 0;   // i == 0


if (i == 0)  // i == 0

    i++;     // i == 1


i++;         // i == 2


if (i == 3)  // i == 2

    i += 2;  // doesn't enter (since i != 3)


i += 2;      // i == 4



查看完整回答
反对 回复 2023-08-20
?
HUWWW

TA贡献1874条经验 获得超12个赞

您需要使用大括号 { } 来表示超出单行条件的任何内容,或者仅在条件为 true 时执行后的第一行代码。


/*

for example would be 


if (i == 0) 

{

    i++; 

    i++; 

}

*/


int i = 0;


//this is true

if (i == 0)

    i++; // so only this line gets executed i = 1

    i++; // this will get executed no matter what. i = 2

//at this point i = 2 so the conditional is false

if (i == 3)

    i += 2; // this line doesn't get executed

    i += 2; /* this is not in curly brackets { } so it will get executed no matter what the conditional returns as .. so i = 4*/


//i = 4

Console.WriteLine(i);

//and that's what prints

查看完整回答
反对 回复 2023-08-20
  • 2 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信