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

抱歉,如果这是一个愚蠢的初学者问题,但我完全被难住了。


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 语句”。正确的?


我缺少什么?


FFIVE
浏览 97回答 2
2回答

繁星点点滴滴

是的,是的4,让我们格式化代码(右缩进)并查看:int i = 0;   // i == 0if (i == 0)  // i == 0    i++;     // i == 1i++;         // i == 2if (i == 3)  // i == 2    i += 2;  // doesn't enter (since i != 3)i += 2;      // i == 4

HUWWW

您需要使用大括号 { } 来表示超出单行条件的任何内容,或者仅在条件为 true 时执行后的第一行代码。/*for example would be if (i == 0) {    i++;     i++; }*/int i = 0;//this is trueif (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 falseif (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 = 4Console.WriteLine(i);//and that's what prints
打开App,查看更多内容
随时随地看视频慕课网APP