有一个疑问,else if为什么换成if就不对了

P2615 [NOIP2015 提高组] 神奇的幻方

这里的条件相当于 00,01,11,10 互斥的条件应该不能同时满足,那么为啥子换成if结果就大相径庭呢,求大佬指教
by icingonthecake @ 2024-02-06 19:04:40


@[icingonthecake](/user/1270119) 你x,y的值改变了当然啊! 可以试一下下面这一段代码 ```c++ #include<bits/stdc++.h> using namespace std; int main(){ int a = 0; if(a == 0) a++; if(a == 1) a++; if(a == 2) a++; if(a == 3) a++; cout << a; return 0; } ``` 输出的结果是 4 这说明很多 if 属于不同的线程,一个线程并不会影响其它的,你x,y也是同理。 tips:用if -else 语句会形成一个“串联”的结构,满足其中一个就会退出。 用 if 加上 `continue`语句也可以哦
by chenyuchen_1 @ 2024-02-06 19:07:01


@[icingonthecake](/user/1270119) ```c++ x=n;//<<<here y++; ```
by chenyuchen_1 @ 2024-02-06 19:08:02


@[icingonthecake](/user/1270119) 会不会是因为执行其中一个if的时候改变了x和y的值使得他们有可能满足其他判断的条件?
by hema5177 @ 2024-02-06 19:10:25


@[icingonthecake](/user/1270119) 满足第一个条件第二个也会满组
by chenyuchen_1 @ 2024-02-06 19:11:49


诶回晚了,当我没说(
by hema5177 @ 2024-02-06 19:11:57


@[chenyuchen_1](/user/1023780) 哇,懂了,谢谢大佬,爆赞!!!
by icingonthecake @ 2024-02-06 19:15:21


@[hema5177](/user/648623) 你也是,爆赞!
by icingonthecake @ 2024-02-06 19:15:46


@[icingonthecake](/user/1270119) 谢谢qwq
by hema5177 @ 2024-02-06 19:45:53


|