windows核心溢位漏洞提許可權
迴圈結構
while迴圈
public class WhileDemon1 {
public static void main(String[] args) {
int i = 0;
while (i<100){
i++;
System.out.println(i);
}
}
}
判斷while條件是否為真,為真則執行,知道條件為假,跳出迴圈。注意設定while結束的條件。正常程式設計中應該避免死迴圈。
使用while迴圈編寫程式計算一個1+2+...+100的結果:
public class WhileDemon2 { public static void main(String[] args) { int i = 0; int sum = 0; while(i<=100){ sum=sum+i++; } System.out.println(sum); } }
Do...while迴圈
語法
do{ //程式碼語句
}while(布林表示式);
public class DoWhileDemon1 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
do {
sum= sum + i++;
}while (i<=100);
System.out.println(sum);
}
}
↑用do while寫1加到100的程式,結果均為5050
while和do while的區別
while先判斷後執行,do while先執行後判斷,故do while總能保證迴圈體會被至少執行一次。
for...迴圈
是最有效最靈活的迴圈結構
語法
for(初始化;布林表示式;更新){
// 程式碼語句
}
可以用快捷鍵:100.for生成一個for迴圈
for和while的用法對照↓
public class ForDemon1 { public static void main(String[] args) { int a = 0; //初始化值 while(a<100){ //布林表示式 a+=2; //迭代 更新 System.out.println(a); } System.out.println("while迴圈結束"); for (int i = 0;//初始化值 i<100;//布林表示式 i+=2//更新值********本次迴圈完成後才更新 ){ System.out.println(i); } System.out.println("do while迴圈結束"); } }
從程式結果看,while最後輸出的數字為100,而for最後輸出為98,這是因為for中的更新值,是在本次迴圈完成後才進行更新的(即迴圈體完成後更新)
練習
public class ForDemon2 {
public static void main(String[] args) {
//練習:計算0~100以內奇數的合,偶數的和
int oddsum = 0;//奇
int evensum= 0;//偶
for (int i = 0; i <= 100; i++) {
if (i%2==0){ //i除以2取餘數等於0
evensum+=i;
}else { //不等於0
oddsum+=i;
}
}
System.out.println("奇數合為:"+oddsum);
System.out.println("偶數合為:"+evensum);
}
}
public class ForDemon3 {
public static void main(String[] args) {
// 練習:輸出0~1000內能夠被5整除的數,每三個換一行
for (int i = 1; i <= 1000; i++) {
if (i%5==0){
System.out.print(i+"\t");//不換行
if (i%15==0){
System.out.println("\n");}
//換行
}
}
}
}
↑↑在迴圈中首先判斷是否能夠被5整除,滿足就輸出 i 加空格;再判斷是否能夠被15整除,能夠被15整除說明是本行第3個數,需要換行,本次迴圈體執行完成,i加1。(print輸出不換行,println換行。)
列印九九乘法表
public class ForDemon4 {
public static void main(String[] args) {
for (int b = 1; b < 10; b++) {
int a = 1;
while(a<=b){
System.out.print(a+"*"+b+"="+(a*b)+"\t");
a++;
}
System.out.println("\n");
//a從0自增,直至a等於b,本行輸出完畢,跳出while迴圈,再輸出換行符
//後開始for的下一次迴圈(每次b+1)
}
//for迴圈完畢時,表生成完成
}
}
程式執行結果為
思路:定義a為第一個數,b為第二個數。觀察乘法表發現,第一行的a均從1開始,增加到等於b為止,故使用while(a<=b)作為判斷條件,當a=b是停止while迴圈,輸出換行符。表總共有9行,即b=1一直增加到b=9,使用for (int b = 1; b < 10; b++),再將while巢狀於for迴圈中。即while迴圈形成行,而for迴圈形成列,將while套於for中即可形成表。
增強for迴圈
重點用來迴圈陣列和集合的
語法
for(宣告語句 : 表示式)
{
//程式碼句
}
public class ForDemon5 {
public static void main(String[] args) {
int[] numbers = {10, 20, 30, 40, 50};//定義一個數組,名為numbers
for (int i = 0;i<5;i++){
System.out.println(numbers[i]);} //[] 括號中代表陣列中的第幾個數
System.out.println("=========================");
//遍歷陣列的元素 增強for迴圈↓
for (int x : numbers) {
System.out.println(x);
}
}
}
↑兩種遍歷陣列的方法,得到的結果是一樣的。先了解即可。
break
break用於強制退出該迴圈,不執行迴圈中剩餘的語句。(迴圈都不幹了)
public class BreakDemon1 {
public static void main(String[] args) {
int i = 1;
while (i < 100) {
System.out.println(i);
i++;
if (i == 30) {
break;//跳出該迴圈
}
}
}
}//數字只顯示到29,沒有到99就停止了
continue
用於終止某次迴圈,即跳過迴圈體中的尚未執行的語句,接著進行下一次是否執行迴圈的判斷。(這次不幹,下次還幹)
public class Continue1 {
public static void main(String[] args) {
int i = 1;
while(i<100){i++;
if(i%5==0){System.out.println();
continue;}
//如果是5的倍數,跳過本次迴圈,即↓不執行,回到判斷
System.out.println(i);}
}
} // 輸出0到99,不輸出5的倍數