❶ 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;
}