请问一下,else if 和if 在下边的升序排序中为什么会有这个情况出现?

图片说明
图片说明图片说明

正确的比较应该是
a b
b c(此时c已经是最大)
a b(此时a b c有序)

因为你这个判断语句是用的if...else if ,前面的判断没有通过,所以后面的不会执行,所以最后bc并没有比较哦

if(a > b){   //a = 5 > b = 3; 这一句判断成立,后面的else if 就全都跳过了,除非括号里面的条件一直不满足才会执行到最后的else if
...
}else if(a>c){
...
} else if(a>c){
...
}

而最后的if语句是单独的判断,三个判断没有联系,只要判断条件成立就会执行代码块中的代码;