我已經編寫了一個程序,以升序和降序對數字進行排序。下面是輸出:如何調試運行但不停止的程序?
「輸入數字進行排序」 輸入數字{4 3 2 6}
「類型 'A' 爲升序 'B' 爲降序」 輸入A 輸出:2 3 4 6
該程序運行時會給出正確的輸出,但它不會在命令提示符下自動退出。當我按ctrl-c時,我收到一條消息「線程中的異常」main「」。
我想找到我現在出錯的地方,但沒有成功。
代碼:
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter numbers to sort");
String str = in.nextLine();
String[] splitted = str.trim().split("\\s+");
int len = splitted.length;
int a[] = new int[len];
for (int i = 0; i < len; i++) {
a[i] = Integer.parseInt(splitted[i]);
}
boolean TryAgain = true;
System.out.println("How to sort: Type 'A' for Ascending and 'B' for Descending order");
while (TryAgain=true) {
char SortType = in.next().charAt(0);
if (SortType == 'A' || SortType == 'a' || SortType == 'B' || SortType == 'b') {// first if
if (SortType == 'A' || SortType == 'a') {// second if loop
// code for sorting in Ascending order
for (int j = 0; j < len - 1; j++) {
for (int k = 0; k < len - j - 1; k++) {
if (a[k] > a[k + 1]) {
int n = a[k];
a[k] = a[k + 1];
a[k + 1] = n;
} // for
} // for
} // if
System.out.println("Numbers sorted in Ascending order:");
for (int m = 0; m < len; m++) {
System.out.print(a[m] + " ");
} // for
TryAgain = false;
} // second if loop
else {// second else
// code for sorting in Dscending order
for (int j = 0; j < len - 1; j++) {
for (int k = 0; k < len - j - 1; k++) {
if (a[k] < a[k + 1]) {
int n = a[k];
a[k] = a[k + 1];
a[k + 1] = n;
} // for
} // for
} // if
System.out.println("Numbers sorted in Dscending order:");
for (int m = 0; m < len; m++) {
System.out.print(a[m] + " ");
} // for
TryAgain = false;
} // second else loop
} // first if loop
else {// first else
TryAgain = true;
System.out.println("Invalid input");
System.out.println("Type 'A' for Ascending and 'B' for Descending order:");
} // first else loop
} // while loop
}// main
}// class
嘗試將'while(TryAgain = true)'改爲'while(TryAgain)'和停止有害的任務。 – MikeCAT
什麼格式.... – Ian
請格式化您的代碼。難怪你找不到你的錯誤;) – Mark