似乎没什么好说的,foreach是一个语法现象。接着是break,continue,break直接跳出循环,continue则略过循环中的其他step直接从头开始,
举2个例子吧。第一个是100以内的全部素数。
public class Su {
public static void main(String[] args) {
for(int i=2;i<100;i++) {
boolean result=true;
for(int j=2;j<i;j++) {
if(i%j==0) {
result=false;
break;
}
} if(result) System.out.print(i+" ");
}
}
}
这个主要是考察的i--的思想。36选7.乐透的模板。
public class ChooseN {
public static void main(String[] args) {
Random rand=new Random();
int[] arr=new int[7];
for(int i=0;i<arr.length;i++) {
arr[i]=rand.nextInt(36)+1;
boolean result=true;
for(int j=0;j<i;j++) {
if(arr[i]==arr[j]) {
result=false;
i--;
break;
}
}
if(result) System.out.print(arr[i]+" ");
}
}
}
着色部分为这段的中心。翻译成人类语言就是,如果在数组中存在比i下标小的数字,等于i,那么布尔值为false。比如此时i下标为3,也就是第4个数字,前面3个数字中存在与i相等的,那么此时i减回去。跳出这个循环,重新生成第4个数字。
似乎—i也可以?还是减减i更好理解一点,结果一样。