for文は二重にしなくても書けますよ。
Java
1import java.util.Scanner;
2
3public class SortArray {
4 public static void main(String[]args) {
5 Scanner str = new Scanner(System.in);
6
7 int[] data = new int[6];
8 for (int i = 0; i < data.length; i++)
9 data[i] = str.nextInt();
10
11 System.out.print("配列dataは、");
12 for (int i = 0; i < data.length; i++) {
13 if (i != 0) System.out.print(",");
14 System.out.print(data[i]);
15 }
16 System.out.println();
17
18 for (int i = 0, j = 0; ; ) {
19 if (data[i] < data[j]) {
20 int a = data[i]; data[i] = data[j]; data[j] = a;
21 }
22 if (++j == data.length) {
23 if (++i == data.length) break;
24 j = i;
25 }
26 }
27
28 System.out.print("配列orderは、");
29 for (int i = 0; i < data.length; i++) {
30 if (i != 0) System.out.print(",");
31 System.out.print(data[i]);
32 }
33 System.out.println();
34 }
35}
追記
解決済みになりましたが、どのように理解して解釈済みにしたのかを、
回答に対するコメントか、質問への追加かで書いてもらいたいものです。
質問のコードには疑問点があります。
Java
1 if (data[i] < 0) {
2 } else if (data[i] > data[j]) {
なぜ data[i] が負の場合、比較対象にしないのでしょうか?
入力データが全部負の数の場合、ソートは行われません。
正の数と負の数が混ざっている場合、data[j] が負の数なら
比較対象になるので、変なソート結果になることがあります。
それから、この質問のコードはバブルソートではありません。
バブルソートというのは、隣り合う配列要素同士を比較するものです。
data[i] と data[j] は離れています。
選択ソートかというと、そうでもありません。
選択ソートというのは、降順(大きい順)の場合、
data[0]~data[5] の中から最大値を求めて data[0] に入れる。
data[1]~data[5] の中から最大値を求めて data[1] に入れる。
というのを繰り返します。
質問のコードはそうなっていません。
data[0]~data[5] の中から最小値を求めて data[0] に入れる。
data[0]~data[5] の中から最小値を求めて data[1] に入れる。
...
data[0]~data[5] の中から最小値を求めて data[5] に入れる。
結果としてはちゃんとソートされます。
なお、私が書いた for文一つのコードは選択ソートです。
ソートに for文を一つも使わなくて書けることを示します。
while文にするわけではありません。
Java
1import java.util.Scanner;
2
3public class SortArray {
4 static int[] data = new int[6];
5
6 static void print(String s) {
7 for (int e : data) { System.out.print(s + e); s = ","; }
8 System.out.println();
9 }
10
11 static void sort(int i, int j) {
12 if (data[i] < data[j]) {
13 int a = data[i]; data[i] = data[j]; data[j] = a;
14 }
15 if (++j < data.length || (j = ++i) < data.length) sort(i, j);
16 }
17
18 public static void main(String[]args) {
19 Scanner sc = new Scanner(System.in);
20 for (int i = 0; i < data.length; i++) data[i] = sc.nextInt();
21 print("配列dataは、");
22 sort(0, 0);
23 print("配列orderは、");
24 }
25}