Java學習筆記 第四天
第一章 順序結構
public static void main(String[] args){
// 順序執行
System.out.println(1);
System.out.println(2);
System.out.println(3);
}
第二章 判斷語句
2.1 判斷語句1—if語句
- if語句第一種格式: if
if(關係表示式){
語句體;
}
public class Demo02if{
public static void main(String[] args){
System.out.println("發現網咖!");
int age = 16;
if(age >= 18){
System.out.println("進入網咖開始擼!");
System.out.println("菜逼隊友");
System.out.println("感覺不爽,結賬走人");
}
System.out.println("回家吃飯");
}
}
2.2 判斷語句2—if…else語句
- if語句第二種格式: if…else
if(關係表示式){
語句體1;
}else{
語句體2;
}
- 執行流程
- 首先判斷關係表示式是不是true
- 如果是true則執行語句體1
- 如果是false則執行語句體2
public class Demo03IfElse{
public static void main(String[] args){
int a = 1;
if(a%2 == 0){
System.out.println("這是偶數");
}else{
System.out.println("這是奇數");
}
}
}
2.3 判斷語句3—if…else if…else
-if語句第三種格式: if…else if…else
if (判斷條件1){
語句體1;
}else if (判斷條件2) {
語句體2;
}
...
}else if (判斷條件n) {
語句體n;
}else{
語句體n+1;
}
- 執行流程:
1.首先判斷關係表示式1,看其結果為true還是false
2.如果結果是true,則執行語句體1,流程結束
3.如果是false,繼續判斷表示式2,看起結果為truehaishifalse
4.如果結果是true,則執行語句體2,流程結束
5.如果是false,按照上面步驟繼續執行下去…
6.如果判斷到第n個判斷條件依然是false,則執行語句體n+1,流程結束
// 如果x >= 3;那麼y = 2x + 1
// 如果-1 < x < 3,那麼y = 2x
// 如果x <= -1,那麼y = 2x - 1
public class Demo04IfElseIf{
public static void main(String[] args){
int x = 10;
int y;
if (x >= 3){
y = 2 * x + 1;
}else if (x > -1 && x < 3){
y = 2 * x;
}else {
y = 2 * x - 1;
}
System.out.println("結果是:" + y);
}
}
2.3.1 練習—實現成績劃分
// 指定考試成績,判斷成績的等級
// 90-100 優秀
// 80-89 好
// 70-79 良
// 60-69 及格
// 60以下 不及格
public class Demo05Practice{
public static void main(String[] agrs){
int score = 84;
if(score >= 90 && score <= 100){
System.out.println("優秀");
}else if(score >= 80 && score <= 89){
System.out.println("好");
}else if(score >= 70 && score <= 79){
System.out.println("良");
}else if(score >= 60 && score <= 69){
System.out.println("及格");
}else if(score >= 0 && score <= 59){
System.out.println("不及格");
}else{
System.out.println("分數無效");
}
}
}
2.3.2 練習—用if語句替換三元運算子
// 題目:使用三元運算子和標準的if...else語句分別實現:取兩個數字中的最大值
public class Demo05Practice2{
public static void main(String[] args){
func1();
func2();
}
public static void func1(){
double a = 4.5;
double b = 5.7;
double max = a < b?b:a;
System.out.println("最大值是:" + max);
}
public static void func2(){
double a = 4.5;
double b = 5.7;
if (a < b){
System.out.println("最大值是" + b);
}else{
System.out.println("最大值是" + a);
}
}
}
第三章 選擇語句
3.1 選擇語句—switch語句
- switch語句格式
swtich(表示式){
case 常量值1:
語句體1;
break;
case 常量值2:
語句體2;
break;
...
default:
語句體n+1;
break;
}
- 執行流程:
1.首先計算出表示式的值
2.其次,和case一次比較,一旦有對應的值,就會執行相應的語句,在執行過程中,遇到break就會結束
3.最後,如果所有的case都和表示式的值不匹配,就會執行default語句體部分,然後程式結束掉
例子:
// 用switch語句判斷星期幾
public class Demo07Switch{
public static void main(String[] args){
int num = 8;
if (num >= 1 && num <= 7){
switch(num){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
default:
System.out.println("週末");
break; // 最後一個break語句可以省略,但是強烈建議不要省略
}
}else{
System.out.println("資料無效");
}
}
}
switch注意事項:
1.多個case後的數值不可以重複,否則,編譯器javac在編譯時候會報錯
2.switch後面小括號當中的內容只能是下列資料型別:
基本資料型別:byte、short、int、char
引用資料型別:String字串、enum列舉(很少遇到)
3.switch語句格式很靈活:前後順序可以顛倒(原因在於每個case後的數值不重複,所以不會影響程式的執行結果),而且break語句還可以省略(匹配哪一個case就從哪一個位置向下執行,直到遇到了break或者整體結束為止)
如:
public class Demo08SwicthNotice{
public static void main(String[] args){
int num = 2;
switch (num){
case 1:
System.out.println("你好");
break;
case 2:
System.out.println("我好");
case 3 :
System.out.println("大家好");
break;
default:
System.out.println("你好,他也好");
break;
}
}
}
// 上面程式碼發生了穿透現象
// 當在case 2這裡匹配成功時,執行下面的語句輸出“我好”,但是沒有遇到break語句,故繼續向下執行
// 遇到case 3直接穿透,執行case 3下面的語句輸出“大家好”,然後遇到break結束switch語句
// 綜上,輸出:
// 我好
// 大家好
第四章 迴圈語句
4.1 迴圈概述
迴圈語句可以在滿足迴圈條件下,反覆執行某一段程式碼,這段被重複執行的程式碼被稱為迴圈體語句,當反覆執行這個迴圈體時,需要在合適的時候把判斷語句條件改為false,從而結束迴圈,否則迴圈將一直執行下去,形成死迴圈。
迴圈結構的基本組成部分可以分為4個部分:
- 1.初始迴圈語句:在迴圈開始最初執行,而且只做一次
- 2.條件判斷:如果成立,則迴圈繼續,如果不成立,則迴圈退出
- 3.迴圈體:重複要做的事情內容,若干行語句
- 4.步進語句:每次迴圈之後都要進行的掃尾工作
4.2 迴圈語句1—for
- for迴圈語句格式:
for(初始表示式1;布林表示式2;步進表示式4):{
迴圈體3
}
執行流程:
- 執行順序:1234>234>234…2不滿足為止
- 初始表示式1負責完成迴圈變數初始化
- 布林表示式2負責判斷是否滿足迴圈條件,不滿足則跳出迴圈
- 迴圈體3執行具體的語句
- 步進表示式4迴圈後,迴圈條件所涉及的變數的變化情況
4.3 迴圈語句—while
- while迴圈語句格式
while迴圈有一個標準格式和一個擴充套件格式
標準格式:
while(條件判斷){
迴圈體
}
擴充套件格式:
初始化表示式1
while (布林表示式2){
迴圈體3;
步進表示式4;
}
- 執行流程:
執行順序:1234>234>234…2不滿足為止
初始化表示式1負責完成迴圈變數的初始化
布林表示式2負責判斷是否滿足迴圈條件,不滿足則跳出迴圈
迴圈體3是具體的執行語句
步進表示式4迴圈後,迴圈條件所涉及的變數的變化情況
例子:
/*
while迴圈有一個標準格式和一個擴充套件格式
標準格式:
while(條件判斷){
迴圈體
}
擴充套件格式:
初始化語句
while (條件判斷){
迴圈體;
步進語句
}
*/
public class Demo09While{
public static void main(String[] args ){
fun1();
fun2();
}
public static void fun1(){
for (int i = 1; i <= 10; i++){
System.out.println("我錯啦!" + i);
}
}
public static void fun2(){
int i = 1; // 1.初始化語句
while (i <= 10){ // 2.條件判斷
System.out.println("我沒錯!" + i); // 3.迴圈體
i++; // 4.步進語句
}
}
}
4.4 迴圈語句—do…while
do…while的迴圈格式
初始化表示式1
do{
迴圈體3
步進表示式4
}while(布林表示式2);
- 執行流程:
執行順序134>234>234…2不滿足為止
初始化表示式1完成迴圈變數的初始化
布林表示式2負責判斷是否滿足迴圈條件,不滿足則跳出迴圈
迴圈體3是具體執行的語句
步進表示式4迴圈後,迴圈條件所涉及的變數的變化情況
例如:
/*
do---while迴圈的標準格式:
do{
迴圈體
}while (條件判斷);
擴充套件格式;
初始化語句
do{
迴圈語句;
步進語句;
}while(條件判斷);
*/
public class Demo09DoWhile{
public static void main(String[] args){
fun1();
fun2();
fun3();
}
public static void fun1(){
for (int i = 1; i <= 10; i++){
System.out.println("我錯啦!" + i);
}
}
public static void fun2(){
int i = 1;
while(i <= 10){
System.out.println("我沒錯!!!" + i);
i++;
}
}
public static void fun3(){
int i = 1;
do{
System.out.println("你無理取鬧!!!!!!" + i);
i++;
}while(i <= 1);
}
}
4.5 三種迴圈計算1-100以內所有偶數和
// 練習:用迴圈求出1-100內的所有偶數的加和
public class Demo09Practice{
public static void main(String[] args){
fun1();
fun2();
fun3();
}
public static void fun1(){
int sum = 0;
for (int i = 1;i <= 100; i++){
if (i % 2 == 0){
sum += i;
}
}
System.out.println("結果為:" + sum);
}
public static void fun2(){
int sum = 0;
int i = 1;
while (i <= 100){
if (i % 2 == 0){
sum += i;
}
i++;
}
System.out.println("結果為:" + sum);
}
public static void fun3(){
int sum = 0;
int i = 1;
do{
if (i % 2 == 0){
sum += i;
}
i++;
}while(i <= 100);
System.out.println("結果為:" + sum);
}
}
4.6 三種迴圈之間的區別
三種迴圈的區別:
1. 如果條件判斷從來沒有滿足過,那麼for迴圈和while迴圈將會執行1次,但是do…while迴圈會執行1次(第一次執行不進行條件判斷)。
2. for迴圈的變數在小括號中定義,只有迴圈內部才可以使用。但是while迴圈和do…while迴圈的初始化語句本來就在外面,所以迴圈出來之後還可以使用
public class Demo09Notice{
public static void main(String[] args){
fun1();
fun2();
fun3();
}
public static void fun1(){
for (int i = 1; i <= 5; i++){
System.out.println("這是第" + i + "次");
}
// System.out.println(i) // 這一行寫法是錯誤的!因為變數i定義在for迴圈內,只有for迴圈自己才可以使用
}
public static void fun2(){
int i = 1;
while (i <= 0){
System.out.println("這是第" + i + "次");
i++;
}
System.out.println("在while迴圈外依然可以使用變數i,此時i = " + i); // 輸出i = 1
}
public static void fun3(){
int i = 1;
do{
System.out.println("這是第" + i + "次");
i++;
}while(i <= 0);
System.out.println("在do...while外部依然可以使用變數i,此時i = " + i); // 輸出i = 2
}
}
4.7 迴圈控制語句
4.7.1 break語句
break關鍵字的用法有兩種:
1. 可以用在switch語句中,一旦被執行,整個switch選擇語句就會立刻結束。
2. 還可以用在迴圈中,一旦被執行,整個迴圈語句立刻結束,打斷迴圈。
關於迴圈選擇的建議:
凡是次數確定的場景多使用for迴圈;否則多用while迴圈。
4.7.2 continue語句
continue語句只用在迴圈中,一旦被執行,立刻跳過當前次迴圈剩餘內容
4.8 死迴圈
永遠停不下來的迴圈叫做死迴圈。
如:
for ( int i = 1; i <= 10;){
System.out.println("中國");
}
死迴圈的標準格式:
while(true){
System.out.println("I Love Java!");
}
4.9 巢狀迴圈
- 所謂巢狀迴圈,是指一個迴圈的迴圈體是另外一個迴圈。比如for迴圈裡還有一個for迴圈,就是巢狀迴圈。總共的迴圈次數 = 外層迴圈次數 * 內層迴圈次數
- 迴圈巢狀格式
for(初始化表示式1;迴圈條件2;步進表示式7){
for(初始化表示式3;迴圈條件4;步進表示式6){
執行語句5;
}
}
- 巢狀迴圈執行流程:
執行順序:123456>456>723456>456
外迴圈一次,內迴圈多次
比如跳繩:一共跳5組,每組跳4個。5組就是外迴圈,4個就是內迴圈 - 練習:
public static void main(String[] args){
for(int i = 0; i < 24; i++){
for(int j = 0; j < 60; j++){
System.out.println(i + "點" + j "分");
}
}
}
相關文章
- JAVA SE 學習第四天Java
- JAVA學習筆記Java筆記
- 《JAVA學習指南》學習筆記Java筆記
- java學習第四天7/9Java
- Java 集合學習筆記Java筆記
- java學習筆記6Java筆記
- Java學習筆記--反射Java筆記反射
- java學習筆記啊Java筆記
- Java學習筆記二Java筆記
- Java學習筆記三Java筆記
- Java JNI 學習筆記Java筆記
- Java學習筆記4Java筆記
- Java學習筆記--sql與javaJava筆記SQL
- Java學習筆記記錄(二)Java筆記
- Java學習筆記--運算子Java筆記
- Java學習筆記系列-反射Java筆記反射
- Java JDK 9學習筆記JavaJDK筆記
- java學習筆記(異常)Java筆記
- 【Java學習筆記】Collections集合Java筆記
- 【部分】Java速成學習筆記Java筆記
- Java IO學習筆記五Java筆記
- Java API學習筆記(一)JavaAPI筆記
- Java學習筆記之一Java筆記
- Java學習筆記之staticJava筆記
- Java學習筆記之多型Java筆記多型
- JAVA學習筆記-繼承Java筆記繼承
- 【Java學習筆記】拾遺Java筆記
- 重新學習JAVA的筆記Java筆記
- Java基礎學習筆記Java筆記
- java小白學習筆記之初識javaJava筆記
- Java學習筆記(七十二)—— CookieJava筆記Cookie
- TensorFlow Java API 學習筆記JavaAPI筆記
- Java 學習筆記--Day1Java筆記
- Java 學習筆記(持續更新)Java筆記
- JAVA 學習併發筆記(一)Java筆記
- (一)Java併發學習筆記Java筆記
- Java學習筆記09(IO流)Java筆記
- Kotlin for Java Developers 學習筆記KotlinJavaDeveloper筆記