Java基礎核心中巢狀迴圈的使用:輸出九九乘法表以及質數
Java巢狀迴圈的使用:
巢狀迴圈:將迴圈結構A放在另一個迴圈結構B的迴圈體中,就構成了巢狀迴圈
外層迴圈:迴圈結構B
內層迴圈:迴圈結構A
說明:1.內層迴圈結構遍歷一次,只相當於外層迴圈的迴圈體執行一次
2.假設外層迴圈需要執行m次,內層迴圈需要執行n次,則內層迴圈的迴圈體需要執行m*n次
例子1:輸出九九乘法表
public class NineNineTable {
public static void main(String[] args) {
// TODO 自動生成的方法存根
for(int i=1;i<=9;i++) { //外迴圈控制行數
for(int j=1;j<=i;j++) { //內迴圈控制列數
}
System.out.println();
}
}
}
執行結果:
例子2:遍歷100以內的數並輸出質數
public class PrimeNumber {
public static void main(String[] args) {
// TODO 自動生成的方法存
boolean isFlag=true;
for(int i=2;i<=100;i++) {
for(int j=2;j<=i-1;j++) { //j:被i去除
isFlag=false;
}
}
if(isFlagtrue) {
System.out.println(i);
}
isFlag=true;//重置
}
}
}
或者可以:
public class PrimeNumber {
public static void main(String[] args) {
// TODO 自動生成的方法存
for(int i=2;i<=100;i++) {
boolean isFlag=true;
for(int j=2;j<=i-1;j++) {
if(i%j0) {
isFlag=false;
}
}
if(isFlagtrue) {
}
//isFlag=true;//重置
}
}
}
執行結果:
例子3:遍歷10000以內的數並輸出質數:(添加了程式的執行時間和計算質數的總數的功能)
通過對程式碼的優化使得程式的執行效率更高,執行時間更短
public class PrimeNumber {
public static void main(String[] args) {
// TODO 自動生成的方法存
long start=System.currentTimeMillis(); //開始時間
int count=0;
for(int i=2;i<=10000;i++) { //遍歷10000以內的質數
boolean isFlag=true; //標識i是否被j整除,一旦除盡,修改其值
for(int j=2;j<=Math.sqrt(i);j++) { //優化二:對本身是質數的自然數有效
if(i%j0) {
isFlag=false;
break; //優化一:只對本身非質數的自然數有效
}
}
if(isFlagtrue) {
System.out.println(i);
count++;
}
}
long end=System.currentTimeMillis();//結束時間
System.out.println(“執行時間:”+(end-start));//計算程式的執行時間
System.out.println(“質數的個數:”+count);
}
}
執行結果: