Java運算符和流程控制語句
目錄
一、Java運算符
1、表達式:由操作數和運算符組成。如數值5,變量num,num+2等
2、算數運算符:
(1)、算數運算符表:
(2)、注意:++和--既可以出現在操作數的左邊,也可以出現在操作數的右邊
出現在操作數左邊:
結果:
出現在操作數右邊:
結果:
示例比較圖:
特別注意:++和--只能用來操作變量,不能操作數值或常量
3、賦值運算符:
(1)、注意:賦值運算符是從右往左運算;賦值號左邊不能是常量
(2)、賦值運算符表:
4、邏輯運算符:結果爲true或false
(1)、邏輯運算符表:
5、比較運算符:判斷兩個數的大小,結果爲true或false
比較運算符表:
6、條件運算符:也稱爲 “三元運算符”
(1)、語法形式:布爾表達式 ? 表達式1 :表達式2
(2)、運算過程:如果布爾表達式的值爲 true ,則返回 表達式1 的值,否則返回 表達式2 的值
7、運算符的優先級:
二、流程控制(順序結構、選擇結構、循環結構)
1、順序結構:程序從上往下依次執行
2、選擇結構:生活中,我們經常需要先做判斷,然後才決定是否要做某件事情。
(1)、if條件語句:
語法:當大括號內只有一條語句時,大括號可以省略
流程圖:
(2)、if-else條件語句:if...else 語句的操作比 if 語句多了一步: 當條件成立時,則執行 if 部分的代碼塊; 條件不成立時,則進入 else 部分
語法:
流程圖:
(3)、多重if條件語句:多重 if 語句,在條件 1 不滿足的情況下,纔會進行條件 2 的判斷;當前面的條件均不成立時,纔會執行 else 塊內的代碼
語法:
流程圖:
(4)、嵌套if條件語句:只有當外層 if 的條件成立時,纔會判斷內層 if 的條件
語法:
流程圖:
(5)、switch條件語句:當需要對選項進行等值判斷時,使用 switch 語句更加簡潔明瞭
語法:
執行過程:當 switch 後表達式的值和 case 語句後的值相同時,從該位置開始向下執行,直到遇到 break 語句或者 switch 語句塊結束;如果沒有匹配的 case 語句則執行 default 塊的代碼
3、循環結構:while、do-while、for、循環嵌套(雙重循環)、break語句、continue語句
(1)、Java循環之while循環:生活中,有些時候爲了完成任務,需要重複的進行某些動作
語法:
執行過程:
< 1 >、 判斷 while 後面的條件是否成立( true / false )
< 2 >、 當條件成立時,執行循環內的操作代碼 ,然後重複執行< 1 >、< 2 >, 直到循環條件不成立爲止
特點:先判斷後執行
(2)Java循環之do-while循環:和while循環類似,和while循環相比do-while循環至少執行一次,而while循環如果條件不滿足時一次都不執行
語法:
執行過程:
<1>、 先執行一遍循環操作,然後判斷循環條件是否成立
<2>、 如果條件成立,繼續執行< 1 > 、< 2 >,直到循環條件不成立爲止
(3)、for循環
語法:
執行過程:
<1>、 執行循環變量初始化部分,設置循環的初始狀態,此部分在整個循環中只執行一次
<2>、 進行循環條件的判斷,如果條件爲 true ,則執行循環體內代碼;如果爲 false ,則直接退出循環
<3>、 執行循環變量變化部分,改變循環變量的值,以便進行下一次條件判斷
<4>、 依次重新執行< 2 >、< 3 >、< 4 >,直到退出循環
注意事項 :
1、 for 關鍵字後面括號中的三個表達式必須用 “;” 隔開,三個表達式都可以省略,但 “;” 不能省略。
a. 省略“循環變量初始化”,可以在 for 語句之前由賦值語句進行變量初始化操作,如:
b. 省略“循環條件”,可能會造成循環將一直執行下去,也就是我們常說的“死循環”現象,如:
在編程過程中要避免“死循環”的出現,因此,對於上面的代碼可以在循環體中使用 break 強制跳出循環
c. 省略“循環變量變化”,可以在循環體中進行循環變量的變化,如:
2、 for 循環變量初始化和循環變量變化部分,可以是使用 “,” 同時初始化或改變多個循環變量的值,如:
3、循環條件部分可以使用邏輯運算符組合的表達式,表示複雜判斷條件,但一定注意運算的優先級,如:
(4)、循環案例代碼介紹:
案例1、 用while循環輸出26個小寫英文字母,並且分兩行輸出,每行13個
代碼示例while循環:
public static void main(String[] args) {
//目標:用while循環輸出26個小寫英文字母,並且分兩行輸出,沒行13個
char en='a';
int count=1;//用來控制輸出的行數
while(en<='z') {
System.out.print(en+" ");
en++;
if(count%13==0)
System.out.println();
count++;//記錄輸出次數
}
}
結果:
案例2、猜字遊戲。要求猜一個介於1-10之間的數字。然後將猜到的值與實際值進行比較,並給出提示,以便能更接近 實際值,直到猜中爲止
代碼示例while循環實現:
import java.util.Scanner;
public class CharDemo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int number=6;//存放真實值
System.out.println("輸入1-10之間的猜的數:");
int num=sc.nextInt();
while(num!=number) {
if(num<number)
System.out.println("輸入的數態小了!");
if(num>number)
System.out.println("輸入的數 太大了!");
num=sc.nextInt();
}
System.out.println("恭喜你,猜對了 !");
}
}
代碼示例值do-while循環實現:
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int number=6;//存放真實值
System.out.println("輸入1-10之間要猜的數:");
int num=sc.nextInt();
do {
if(num<number)
System.out.println("數太小");
if(num>number)
System.out.println("數太大");
System.out.println("輸入1-10之間要猜的數:");
num=sc.nextInt();
}while(num!=number);
System.out.println("恭喜你,猜對了");
}
結果:
輸入1-10之間的猜的數:
5
輸入的數態小了!
7
輸入的數 太大了!
6
恭喜你,猜對了 !
(5)、多重循環: 循環體中包含循環語句的結構稱爲多重循環。三種循環語句可以自身嵌套,也可以相互嵌套,最常見的就是二重循環。在二重循環中,外層循環每執行一次,內層循環要執行一圈
邏輯圖示:
嵌套循環解決階乘問題:
代碼示例:
public class CharDemo {
public static void main(String[] args) {
//計算1!+2!+3!+4!(循環嵌套使用案例)
int s=1;//乘積初始值爲1
int sum=0;//求和
for(int i=1;i<=4;i++) {
s=1;//外層循環每次開始之前都有置1,防止影響乘積
for(int j=1;j<=i;j++) {
s=s*j;
}
sum=sum+s;
}
System.out.println("1!+2!+3!+4!="+sum);
}
結果:
1!+2!+3!+4!=33
(6)、跳轉語句break和continue
break:我們可以使用 break 語句退出指定的循環,直接執行循環後面的代碼。可以放在switch、或循環中
continue:continue 的作用是跳過循環體中剩餘的語句執行下一次循環。continue只能值循環語句中使用
三、debug入門斷點調試
1、斷點調試介紹:程序運行後,沒有達到我們的希望的結果,因此需要找到原因,找原因的方法就是調試
2、斷點調試步驟:
第一步:根據經驗找到可能有錯誤的語句設置斷點,斷點可以設置多個
第二步:開啓debug模式(F11快捷鍵進行debug,小蜘蛛圖標、debug as運行、菜單欄中的debug等方式)
第三步:單步運行調試,觀察變量值的變化(快捷鍵介紹:F6是單步運行)
第四步:找到錯誤原因並改正
3、在一個程序中設置多個斷點的情況
F8快捷鍵能從一個斷點調到下一個斷點,略過了中間的語句
斷點在循環中時,沒執行一個循環就是有一個斷點