❶ java for雙循環意思
人家都說了是新手,我來跟你解釋吧。
現在有一個雙for循環如下:
for(inti=0;i<2;i++){
for(intj=0;j<3;j++){
System.out.println(j);
}
}
你說你理解單for循環對吧?那我們把程序拆開,拆成單for循環,如下:
for(intj=0;j<3;j++){
System.out.println(j);
}
for(intj=0;j<3;j++){
System.out.println(j);
}
外層for只是把內層for執行2(條件i<2)次而已
如果還不明白就在程序開始處設一個斷點如下圖:
雙擊行號即可設置斷點
運行程序時如果碰到斷點就會進入調試界面
在調試界面下程序會停在它碰到的第一個斷點
按F6程序會執行下一步
F8退出
當然你得用Eclipse工具,如果沒有的話就去下一個。
網路關鍵字打「Eclipse下載」。
❷ java編程問題。用兩個for循環來把輸入的整數從小到大排序。
我用 3,1,5,4,2做了一下測試,把每次內循環後(外循環的一次)的數組打出來如下:
5 1 3 4 2
1 5 3 4 2
1 3 5 4 2
1 3 4 5 2
1 2 3 4 5
這個排序看起來有點反人類,好像第一次循環的時候把大的往前面放,其實意思綜合起來就一句話:外循環的下標i到哪個數,就保證前i個數是有序的。
解釋一下吧:
i=0的時候把最大的數放在z[0]
i=1的時候,z[0]肯定比z[1]大,互換;後面的數都比不上換過的z[1],所以前2個是有序的。
在i=k時,前k個數是有序的,即z[0...k-1]有序,那麼對於z[k]來排序(此時i=k),n從0開始(即從前面開始),如果n下標的元素大,則互換;如果小,則不換。此時n在i之前,所以保證了大的數一定扔到了後面;那麼內循環中n自增時,前n個數一定是排好序的,直到n=i(即k),那麼前k+1個數也就是有序的。而由於n超過i之後,a[i]變成了原來的a[k-1],一定是數組中最大的數,因此後面的數都比不過它,也就不會再進行交換了。所以在這次外循環中,前k+1個數變成了有序的。
由數學歸納法,最後一定會把所有的數進行排序。
不懂請追問。喜歡就請採納吧~
❸ java for的雙循環問題
public class ttt {
public static void main(String[] args) {
int a[]={1,2,3};
int b[]={3,2,1};
for(int i=0;i<a.length;i++){
for(int j=0;j<b.length;j++){
System.out.print(a[i]+""+b[j]);
System.out.print(" ");
}
}
}
}
13 12 11 23 22 21 33 32 31
❹ 在java中怎麼判斷一個數組包含另一個數組
雙循環,把數組中的每一個值都拿來做比較、判斷!!1
public static boolean containArray(int[] a, int[] b) {
boolean flag = false;
int k = 0;
/**
* 統計b中包含a中的元素是否與a的元素個數相同
*/
if (a.length < b.length) {
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < b.length; j++) {
if (a[i] == b[j]) {
k++;
System.out.println(a[i] +"/"+ b[j]);
continue;
}
}
}
}
if (k == a.length) flag = true;
return flag;
}