Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调用方法时的无限循环_Java_Infinite Loop_Bubble Sort - Fatal编程技术网

Java 调用方法时的无限循环

Java 调用方法时的无限循环,java,infinite-loop,bubble-sort,Java,Infinite Loop,Bubble Sort,当我试图在Bubblesort代码中使用Compare方法来确定要排序的字符串的字母顺序时,我在Compare方法中陷入了一个无限循环中,否则就会发生问题 有什么想法吗? 谢谢 publicstaticint比较(字符串s1,字符串s2){//按字母顺序比较两个字符串 int结果=0; 字符串newS1=“”; 字符串newS2=“”; 对于(inti=0;i

当我试图在Bubblesort代码中使用Compare方法来确定要排序的字符串的字母顺序时,我在Compare方法中陷入了一个无限循环中,否则就会发生问题

有什么想法吗? 谢谢

publicstaticint比较(字符串s1,字符串s2){//按字母顺序比较两个字符串
int结果=0;
字符串newS1=“”;
字符串newS2=“”;
对于(inti=0;i如果(65这里您指定swap等于true

 while (swap = true) {
我想你应该比较一下

boolean swap = true;
while (swap == true){ //Or better while (swap){
   swap = false;

最后一个
if
Compare
中,我认为应该始终是
true
,因此
else
永远不会执行

但我看到的主要问题是
Swap
不起作用

i
j
是字符串引用的副本,字符串本身是不可变的。 在
Swap
的末尾,
i
指向最初由
j
指向的字符串,反之亦然,但字符串本身没有改变,数组将它们放在相同的位置


如果您需要一个单独的
Swap
方法,请传递数组和索引。

我将Swap方法切换到代码本身,这消除了传递的需要?但是现在代码根本不执行。您正在循环之前将
Swap
初始化为
false
。我已经修复了赋值错误,但现在已修复了它似乎代码根本没有到达for循环。首先:
boolean swap=false;
然后
while(swap==true){
。它永远不会进入while循环
boolean swap = true;
while (swap == true){ //Or better while (swap){
   swap = false;