1. 程式人生 > 其它 >Java基礎核心中巢狀迴圈的使用:輸出九九乘法表以及質數

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.print(i+""+j+"="+(ij)+"\t"); //"\t"為製表符可以用空格代替,建議使用製表符
}
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去除

if(i%j0) {
isFlag=false;
}
}
if(isFlag
true) {
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(isFlag
true) {

System.out.println(i);
}
//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(isFlag
true) {
System.out.println(i);
count++;
}
}
long end=System.currentTimeMillis();//結束時間
System.out.println(“執行時間:”+(end-start));//計算程式的執行時間
System.out.println(“質數的個數:”+count);
}
}
執行結果:
在這裡插入圖片描述