所以我正在使用Bubble Sort在Arrays上为我的计算机编程课做一个实验。无论如何代码已经完成并且应该可以工作但是有一部分是出现了“无法访问的代码”的错误。而且我不知道为什么。我在这里看不到问题。这是完整的代码,因此您可以确定问题。
public class MClab22
{
public static void main(String[] args)
{
int[] houseNums = {23, 76, 15, 47, 14, 38, 52};
System.out.print("The original sequence is: \n ");
for (int i = 0; 1 < houseNums.length; i++)
{
System.out.print(houseNums [i] + ", ");
}
System.out.println();
SortEm(houseNums);
}
private static void SortEm (int [] ar)
{
int temp;
for (int i = ar.length - 1; 1 > 0; i--)
{
for (int j = 0; j < i; j++)
{
if (ar[j] > ar[j + 1])
{
temp = ar[j];
ar[j] = ar[j + 1];
ar[j+1] = temp;
}
}
}
System.out.print("The new sequence is : \n ");
for (int i=0; 1 < ar.length; i++)
{
System.out.print (ar[i] + ", ");
}
System.out.println();
}
}
“无法访问的代码”问题&#39;发生在第29行,是&#34; System.out.print(&#34;新序列是:\ n&#34;);&#34; 如果可以,请帮忙,非常感谢提前:))
答案 0 :(得分:1)
尝试这样:
public class MClab22{
public static void main(String[] args)
{
int[] houseNums = {23, 76, 15, 47, 14, 38, 52};
System.out.print("The original sequence is: \n ");
for (int i = 0;i < houseNums.length; i++)
{
System.out.print(houseNums [i] + ", ");
}
System.out.println();
SortEm(houseNums);
}
private static void SortEm (int [] ar)
{
int temp;
for (int i = ar.length - 1; i > 0; i--)
{
for (int j = 0; j < i; j++)
{
if (ar[j] > ar[j + 1])
{
temp = ar[j];
ar[j] = ar[j + 1];
ar[j+1] = temp;
}
}
}
System.out.print("The new sequence is : \n ");
for (int i=0; i < ar.length; i++)
{
System.out.print (ar[i] + ", ");
}
System.out.println();
}
}
实际上有3个问题。第一个问题是条件1> 0的循环。这个总是如此。另外两个问题是你有条件1 <1的循环。 ar.length也是无限的
答案 1 :(得分:1)
来自Wikipedia:
在计算机编程中,无法访问的代码是源代码的一部分 由于不存在而永远无法执行的程序 从程序的其余部分控制代码的流程路径。
这部分导致问题:
for (int i = ar.length - 1; 1 > 0; i--)
特别是:
1 > 0
因为它总是如此,你有一个无限循环,执行永远不会到达:
System.out.print("The new sequence is : \n ");
答案 2 :(得分:1)
我认为你的意思是
for (int i = ar.length - 1; i > 0; i--)
而不是
for (int i = ar.length - 1; 1 > 0; i--)