1. 程式人生 > 實用技巧 >windows核心溢位漏洞提許可權

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的倍數