java中的优先级问题
发布网友
发布时间:2022-05-06 20:01
我来回答
共5个回答
热心网友
时间:2023-09-14 15:47
“++”与“--”的优先级都比“<”要高,
不过“++”、“--”的运算方向是自右向左的,“<”正好相反,所以在进行while里的条件判断后 y 进行“--”操作,结果之所以为 5 、5;
因为在运行到while循环时,条件判断里的 x 已经“++”一次,没有进while循环,所以后面的结果为6。
明白了么.....
热心网友
时间:2023-09-14 15:47
我只说一下x++,y--和++x,--的区别
例如x=4,y=6时;执行x++<y--
是先拿x和y原来的值进行比较,就是4<6成立,
而比较结束后x和y分别进行了++和--操作,值分别变成x=5和y=5了,然后第一次进入while循环打印“开始时是5 5”
然后再判断循环条件,这时是拿x=5和y=5比较结果为假,但是比较完后x和y分别又进行了++和--操作,x=6,y=4;所以才会打印“最后x的值是6”
如果题目是while(++x<--y)那就是先进行++和--操作后的值来判断大小了
说的罗嗦了,呵呵,希望对你有帮助!
热心网友
时间:2023-09-14 15:48
while(x++<y--)
//这个是因为你进行while(x++<y--)判断的,经过判断之后.
System.out.println("开始时"+x+" "+y);
//因为它经过条件判断了,x++,y--
//因为它经过条件判断了,x的值已经改变了所以为5
//因为它经过条件判断了,y的值已经改变了所以也为5
//这个while循环还没有结束,返回去再进行判断
System.out.println("最后x的值是"+x);
//当它进行第二次循环的时候以进行了一次x++,条件不成立,所
//以执行下面这句话,经过因为它经过条件判断之后,x就是6了
热心网友
时间:2023-09-14 15:48
楼主请记住一点,多线程的执行本身就是多个线程的交换执行,并非同时执行,执行的优先级只是他执行的概率。
例如原本优先级一样,那么两个线程的执行的概率都为50%。现在我们提高其中一个,那么一个为60%的概率抢到进入cpu执行的机会,另一个是依旧是40%。执行完一次之后又要重新抢占cpu。但是40%概率进入的线程也有可能抢到,虽然概率低了点,但总会有他执行的机会,万一次次都抽中40%的概率呢?所以你要正确理解线程和线程之间的优先级
热心网友
时间:2023-09-14 15:49
这种题不是高手也会的啊~
查一些 i++和 ++i 、i--和--i的资料。然后你再看这个就清楚了。