增強for迴圈和Debug(排錯)
阿新 • • 發佈:2022-05-06
增強For迴圈、break和continue、列印三角形及Debug
1.增強for迴圈:
- 增強for迴圈這裡我們先只是見一面,做個瞭解,之後陣列會重點使用。
-
java5引入了一種, 主要用於遍歷陣列或集合的增強型for迴圈
-
基本語法:
for(宣告語句:表示式 ){ //程式碼句子 }
-
關於增強for迴圈有以下幾點說明
- 1. 宣告語句:宣告新的區域性變數,該變數的型別必須和陣列元素的型別匹配。其作用域限定在迴圈語句塊,其值與此時陣列元素的值相等
- 2. 表示式:表示式是要訪問的陣列名,或者是返回值為陣列的方法。
1.1 增強for迴圈演示:
package struct; public class ForDemo06 { public static void main(String[] args) { int[] numbs={10,20,30,40,50};//定義了一個數組 for (int i = 0; i < 5; i++) { System.out.println(numbs[i]); } System.out.println("======================"); //遍歷陣列的元素 for (int j :numbs) { //把numbs陣列中每一項的值迴圈賦值給j System.out.println("j = " + j); } } }
執行結果
10
20
30
40
50
======================
j = 10
j = 20
j = 30
j = 40
j = 50
——————————————————————————————————————————————————————————————————————————
2.break與continue
- break在任何迴圈語句的主體部分,均可用break控制迴圈的流程。 break用於強行退出迴圈,不執行迴圈中剩餘的語句。 (break語句也在switch語句中使用)
-
continue語句用在迴圈語句體中, 用於終止某次迴圈過程,即跳過迴圈體中尚未執行的語句,接著進行下一次是否執行迴圈的判定
-
break: 打破,強行終止 continue: 繼續存在;(停頓後)繼續,再開始;
2.1 break程式碼演示:
package struct;
public class BreakDemo01 {
public static void main(String[] args) {
//break在任何迴圈語句的主體部分,均可用break控制迴圈的流程,break用於強行退出迴圈,不執行迴圈中剩餘的語句。
int i=0;
while (i<100){
i++;
//System.out.println("i = " + i);
if(i==20){
break;//當i等於20 時迴圈碰到break 直接強行終止掉迴圈
}
System.out.println("i = " + i);
}
System.out.println("12345");
}
}
執行結果
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 10
i = 11
i = 12
i = 13
i = 14
i = 15
i = 16
i = 17
i = 18
i = 19
12345
2.2 continue程式碼演示
package struct;
public class ContinueDemo01 {
public static void main(String[] args) {
// continue語句用在迴圈語句體中,用於終止某次迴圈過程,即跳過迴圈體中尚未執行的語句,接著進行下一次是否執行迴圈的判定
int i=0;
while (i<20){
i++;
if(i%2==0){
System.out.println();
continue;//當i為偶數時,由於continue 迴圈到此直接回到了i++ 處並沒有執行下面的列印語句直接就跳過了
}
System.out.println(i);
}
}
}
執行結果
1
3
5
7
9
11
13
15
17
19
3.關於goto關鍵字
- goto關鍵字很早就在程式設計語言中出現,儘管goto仍是java的一個保留字,但並未在語言中得到正式使用;java沒有goto。然而,在break和continue這兩個關鍵字的身上,我們仍然能看出一些goto的影子---帶標籤的break和continue。
-
“標籤”是指後面跟一個冒號的識別符號,例如: label:
-
對於java來說唯一用到標籤的地方是在迴圈語句之前。而在迴圈之前設定標籤的唯一理由是:我們希望在其中巢狀另一個迴圈,由於break和continue關鍵字通常只中斷當前迴圈,但若隨同標籤使用,它們就會中斷到存在標籤的地方
3.1 continue中標籤迴圈演示:
package struct;
public class LableDemo {
public static void main(String[] args) {
//列印101~150之間的所有質數
// 質數是指在大於1的自然數中,除了1和它本事以外不再有其他因數的自然數。
int count=0;
// 不建議使用
outer:for (int i = 101; i <150 ; i++) {
for (int j=2;j<i/2;j++){
if(i%j==0){
continue outer;
}
}
System.out.print("i = " + i+" ");
}
}
}
執行結果
i = 101 i = 103 i = 107 i = 109 i = 113 i = 127 i = 131 i = 137 i = 139 i = 149
4.列印三角形和Debug
4.1 for迴圈列印三角形演示:
package struct;
public class TestDemo {
public static void main(String[] args) {
// 使用for迴圈 列印三角形
//首先,列印三角形可以是在長方形中取出一個三角形
//先列印一個倒立的三角形。讓其成為空白部分
//再列印一個對摺後的三角形,也就是九九乘法表對摺後
//最後再列印另外半個三角形,也就是九九乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 9; j >=i ; j--) {
System.out.print(" ");
}
for (int j = 1; j <=i ; j++) {
System.out.print("*");
}
/*for (int j = 1; j <i; j++) {
System.out.print("*");
}*/
System.out.println();
}
}
}
執行結果
*
***
*****
*******
*********
***********
*************
***************
*****************
4.2 斷點除錯Debug
4.21 Debug簡介
-
什麼是程式Debug?
- Debug,是程式開發人員必會的一項除錯程式的技能,Debug模式是供程式設計師使用的程式除錯工具,它可以用於檢視程式的執行流程,也可以用於追蹤程式執行過程來除錯程式。
-
Debug能幫助我們做什麼?
- 追蹤程式碼的執行流程
- 程式執行異常定位和除錯
- 線上問題追蹤
-
Debug對於程式學習者的意義?
- 通過除錯能夠更好的檢視程式的執行流程
- 複雜的程式邏輯,通過別人的口述講解,很難理解清楚,這個時候藉助除錯能夠很好的幫助我們理解程式
- 定位問題,提高自我解決問題的能力
————————————————————————————————————————————————————————————————————————————
4.22 IDEA中的Debug步驟
-
1. 設定斷點
-
2. 除錯程式(8個按鈕)
-
3. 觀察變數
- 檢視變數有三種方式:
- 程式區檢視變數
- Debugger的Variables(變數)中檢視變數
- 滑鼠懸停到變數名上會彈出當前變數的值
- 檢視變數有三種方式:
-
4. 檢視輸出:在Console(儀表板)視窗看程式執行過程中的結果展示
- 詳情參考:Debug模式操作流程
4.23 步過除錯的使用
- 步過除錯(Step Over :跨過 )
- 步過除錯按鈕:F8
- 作用
- 步過,一行一行的往下走,如果這一行上有方法不會進入方法。
- 常用於除錯過程中不想進入呼叫的方法體的情況
4.24 步入除錯的使用
- 步入除錯(Step Into :踏入 )
- 步過除錯按鈕:F7
- 作用
- 步入,一行一行的往下走,如果這一行上有方法則進入方法內部。
- 一般用於進入自定義方法內,不會進入官方類庫的方法
4.25 強制步入除錯的使用
- 步入除錯(Force Step Into:強行進入)
- 步過除錯按鈕:Alt+Shift+F7
- 作用
- 進入官方類庫方法
- 幫助我們學習和檢視JDK原始碼
4.26 步出除錯的使用
- 步入除錯(Step Out :退出 )
- 步過除錯按鈕:Shift+F8
- 作用
- 從方法內退出到方法呼叫處。
- 除錯的時候,有時候會跳入到自己不想檢視的方法體,這個時候使用步出
4.27 回退斷點除錯的使用
- 作用
- 回退到當前方法的呼叫處
- 當想重新檢視該方法體的執行過程時,不用重新啟動Debug,可以使用回退斷點方式
4.28 執行到游標處
-
執行到游標處(Run to Cursor :執行至游標處 )
- 步過除錯按鈕:Alt+F9
-
作用
- 使程式執行到游標處,而無需設定斷點