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