java入門學習總結_03

一、鍵盤錄入

二、分支結構

鍵盤錄入

概述

一、鍵盤錄入:在程序運行的過程當中,可讓用戶錄入一些數據,存儲在內存的變量中,在後續的程序運行過程當中,可使用這些數據。

二、步驟:

第一步:導包,在類聲明的上面,import java.util.Scanner;

第二步:建立鍵盤錄入對象,Scanner sc = new Scanner(System.in);

第三步:調用sc對象的nextInt方法,獲取鍵盤錄入的整數

int x = sc.nextInt();(next接着基本類型:如nextDouble()等)

第四步:使用x後續處理

代碼示例java

 

//導包

import java.util.Scanner; class Demo_1 { //鍵盤錄入

public static void main(String[] args) { // 建立鍵盤錄入對象
 Scanner sca_12 = new Scanner(System.in); //調用對象中的nextInt() 方法

int a = sca_12.nextInt(); int b = sca_12.nextInt(); System.out.println(a*b); } }

 

練習1spa

鍵盤錄入兩個整數,計算兩個整數的和code

代碼示例對象

練習2

鍵盤錄入三個整數,輸出三個整數的最大值blog

代碼示例three

 

import java.util.Scanner; class Demo_2 { public static void main(String[] args) { //鍵盤錄入三個整數,輸出三個整數的最大值
 Scanner sc = new Scanner(System.in); System.out.println("請輸入第一個整數"); int a = sc.nextInt(); System.out.println("請輸入第二個整數"); int b = sc.nextInt(); System.out.println("請輸入第三個整數"); int c = sc.nextInt(); // int abMax = a > b ? a : b; // int max = abMax > c ? abMax : c;三目運算符的一種用法

int max = (a > b ? a : b) > c ? (a > b ? a : b) : c; System.out.println("三個整數的最大值爲:"+max); } }

 

 

 

 

練習3

鍵盤錄入一個整數,判斷該數字的奇偶遊戲

例如,輸出:該數字是25,是一個奇數內存

代碼示例it

import java.util.Scanner; class Demo_3 { public static void main(String[] args) { //鍵盤錄入一個整數,判斷該數字的奇偶
 Scanner sc = new Scanner(System.in); System.out.println("請輸入一個數字"); int a = sc.nextInt(); //String str = a % 2 == 1 ? "奇數" : "偶數" ;
 String str = a % 2 == 0 ? "偶數" : "奇數" ; System.out.println(a+"是"+str); } }

 

分支結構

流程控制

一、在一個程序中,有不少的代碼,代碼的執行順序,就是流程。class

二、用於控制代碼流程的方式,就是流程控制 就是控制代碼的執行順序

三、流程控制的分類:

順序結構:代碼從上到下,從左到右依次執行(重點)

分支結構:到達某個狀態時,可能會有多種狀況,每種狀況都須要提早準備好,因此多條路的路口就是一個分支。代碼寫得多,程序運行的少。(重點)

循環結構:某段代碼相同或者類似,使用相同的邏輯。使用必定的格式,來完成相同代碼的反覆執行。代碼寫的少,程序運行次數多。(重點)

分支結構概述

一、到達某個狀態時,可能會有多種狀況,每種狀況都須要提早準備好,因此多條路的路口就是一個分支。代碼寫得多,程序運行的少。

二、實現格式:

if語句:if是若是的意思,知足了這種條件,才能執行相應的代碼,實現不一樣的邏輯

if

if...else

if...else if...else if....else

switch語句:根據某個變量的值,判斷符合哪一種執行條件

if語句的第一種格式

一、格式:

if (布爾表達式) {

語句體;

}

二、說明:

一、if語句後面跟着的小括號,裏面必須是boolean類型的值;if語句後面的小括號中,只要是計算結果爲boolean類型,就合法(合法不表明就有意義)

二、語句體,能夠是任意操做

三、執行流程:

一、計算布爾表達式的值,要麼爲true、要麼爲false

二、若是計算結果爲true,執行語句體

三、若是計算結果爲false,就不執行語句體

 

說明只有布爾表達式結果爲true纔會執行判斷語句{  }裏面的代碼

 

代碼示例

import java.util.Scanner; class Demo_5 { public static void main(String[] args) { //if語句的第一種格式 // if (布爾表達式){ 語句體; }
 Scanner sc = new Scanner(System.in); int aa = sc.nextInt(); if (aa> 10) { System.out.println(4); int a  = 1; a++; System.out.println(a); if(false){ System.out.println("我是裏面的if語句"); } } System.out.println("if語句管不到我"); } }

 

If語句的注意事項

一、if後面跟着的小括號裏面,必須是boolean的值

二、if後面跟着的小括號裏面,只要計算結果爲boolean類型,就算合法

三、在小括號後面不要加分號,通常來講,有左大括號,就沒有分號,有分號,就沒有左大括號

四、語句體:能夠是任意語句。若是語句體只有一句,那麼大括號能夠省略。可是建議全部狀況都加上大括號,不要省略

代碼示例

class Demo_6 { public static void main(String[] args) { //if語句的注意事項

if(true/*只能寫true 或者false ,表達式的值的結果類型爲boolean*/){ System.out.println(1); } boolean b = false; if(b = true){ System.out.println(b); } if(b = false)/*;不能加分號*/{ System.out.println(";"+b); } //  System.out.println("---------"); if(b = true) //if語句中若是隻有一行代碼,能夠省略大括號,可是不建議你們省略
 System.out.println(b); System.out.println("if你能管到我嗎"); } }

 

if語句的第二種格式

一、格式:

if (條件表達式) {

語句體1;

} else {

語句體2;

}

二、說明:

一、是否有某種狀況,能夠語句體1和語句體2都不執行?不可能,else就已經包含了if不知足的全部狀態

二、是否有某種狀況,可讓語句體1和語句體2都執行?不可能,由於只要語句體1執行了,if語句就直接結束了

三、只能執行其中的一句,而且必定會執行其中一句

三、執行流程:

一、計算條件表達式的值,要麼是true、要麼是false

二、若是條件表達式的值爲true,執行語句體1

三、若是條件表達式的值爲false,執行語句體2

代碼示例

import java.util.Scanner; class Demo_7 { public static void main(String[] args) { //if語句的第二種格式

/*if(布爾表達式){ 語句體1 }else { 語句體2 }*/ System.out.println("請輸入你的年齡"); Scanner sc = new Scanner(System.in); int age = sc.nextInt(); //先判斷表達式的結果,若是爲true執行語句體1 //若是爲false執行語句體2 //思考:有沒有可能語句體1和語句體2.都執行,或都不執行?

if(age >= 18){ //語句體1;
 System.out.println("能夠觀看此電影"); }else{ //else 其餘的,已經包含了不知足if判斷的其餘的全部狀況 //語句體2;
 System.out.println("未成年人禁止觀看"); } //if ....else至少要執行一個語句體
 } }

 

if語句的第三種格式

一、格式:

if (條件表達式1) {

語句體1;

} else if (條件表達式2) {

語句體2;

} else if (條件表達式3) {

語句體3;

}

...

} else if (條件表達式n) {

語句體n;

} else {

語句體n+1;

}

二、執行流程:

一、計算條件表達式1,若是爲true,就執行語句體1,if語句結束

二、若是條件表達式1爲false,計算條件表達式2,若是爲true,就執行語句體2,if語句結束

三、若是條件表達式2位false,就計算條件表達式3.......

四、若是條件表達式1~條件表達式n全都爲false,那麼就執行語句體n+1

三、說明:

一、若是條件表達式2計算結果爲true,執行語句體2(其實這個條件的完整版本:條件表達式1不知足,而且條件表達式2知足)

二、最後的else語句能夠有也能夠沒有,若是有,就必定有執行的內容,若是沒有就可能什麼都執行不了

三、語句體1~語句體n+1是否有可能執行兩句或者兩句以上?不可能,只要其中一條語句執行了,if語句就結束了

四、語句體1~語句體n+1是否有可能一句都不執行?兩種狀況,若是沒有else語句,就可能一個語句體都不執行;若是有else語句,就必定會執行其中的一句。

代碼示例

import java.util.Scanner; class Demo_8 { public static void main(String[] args) { //if語句的第三種格式

/*if(布爾表達式1){ 語句體1; }else if(布爾表達式2){ 語句體2; }else if(布爾表達式3){ 語句體3; }else if(布爾表達式4){ 語句體4; }....... else if(布爾表達式n){ 語句體n; }else{ 語句體n+1; }*/ Scanner sc = new Scanner(System.in); System.out.println("選擇你心儀的戰隊"); int a = sc.nextInt(); if(a == 1){ System.out.println("I like RNG"); }else if(a == 2){ System.out.println("I like IG"); }else if(a == 3){ System.out.println("I like FPX"); }else if(a == 4){ System.out.println("I like SKT"); }else if(a == 5){ System.out.println("I like DWG"); }else{//不加else有可能一個語句體都不執行,加上後至少要執行一個語句體
 System.out.println("垃圾遊戲,我誰都不喜歡"); } } }

 

switch語句

一、switch:表示英文中的開關,每一個條件都像一扇門,開着的,就能夠執行,不然就到下一扇門判斷。

二、格式:

switch (表達式) {

case 常量1:

語句體1;

break;

case 常量2:

語句體2;

break;

.........

case 常量n:

語句體n;

break;

default:

語句體n+1;

}

三、執行流程:

一、計算表達式的值,分別和各個常量匹配

二、若是和常量1匹配,那麼久執行語句體1,break,switch語句就結束了

三、若是和常量1不匹配,那麼就判斷是否和常量2匹配,若是匹配就執行語句體2,break,switch語句就結束了

四、以此類推,若是常量1~常量n全都沒有和表達式的值匹配,那麼就執行default中的內容,switch語句結束。

代碼示例

import java.util.Scanner; class Demo_9 { public static void main(String[] args) { /* switch (表達式) { case 常量1: 語句體1; break; case 常量2: 語句體2; break; ......... case 常量n: 語句體n; break; default: 語句體n+1; } */ Scanner sc = new Scanner(System.in); System.out.println("請指定一個星期的數字"); int week = sc.nextInt(); switch(week){ 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; case 6 : System.out.println("星期六"); break; case 7 : System.out.println("星期日"); default ://能夠有,也能夠沒有,和else功能相似
 System.out.println("地球上沒有你想要星期"); } } }

 

switch語句的注意事項

一、單詞解釋:

switch:開關;case:狀況;break:破壞、退出;default:默認

二、表達式:

Jdk1.5以前:byte、short、char、int

Jdk1.5:枚舉類型

Jdk7:String

三、case後面只能跟常量,不能跟變量

四、每一個case的語句體後面,必定要跟上一個break語句,不然就沒法結束switch語句,而且發生case穿透。Case穿透的利用:多個狀況若是是相同的執行邏輯,那麼就可使用case穿透。

五、Default語句:能夠寫也能夠不寫。若是不寫,就有可能一個語句都執行不到。建議把default語句加上。

六、Default語句能夠寫在任意位置,不管寫在什麼位置,都是最後去匹配,建議把default語句寫在最後。

七、Switch語句結束的條件:碰到了break語句;碰到了右大括號

代碼示例

import java.util.Scanner; class Demo_10 { public static void main(String[] args) { //switch語句的注意事項
 Scanner sc = new Scanner(System.in); //System.out.println("請指定一個星期的數字"); //int week = sc.nextInt(); //char dou = 'c';
 String dou = "ones"; switch( dou/*byte ,short ,char ,int ,String ,(枚舉enum) */){ //case 1 : //case 'a' :

default ://default語句能夠放在任意的位置,不管放在那裏都是最後去匹配的
 System.out.println("地球上沒有你想要星期"); //break;//default方法中間,break不要省,不然發生case穿透問題

case "one" : //case後面只能跟常量不能跟變量
 System.out.println("星期一"); break;//break不能省,若是省掉就發生case穿透問題 //case 2 : //case 'b' :

case "two" : System.out.println("星期二"); break; //case 3 : //case 'c' :

case "three" : System.out.println("星期三"); break; //case 4 : //case 'd' :

case "four" : System.out.println("星期四"); break; //case 5 : //case 'e' :

case "five" : System.out.println("星期五"); break; //case 6 : //case 'f' :

case "six" : System.out.println("星期六"); break; //case 7 : //case 'g' :

case "seven" : System.out.println("星期日"); } } } // 3,4,5, 春天 ,6,7,8,夏天,9 , 10 ,11 秋天 12 ,1,2 冬天

 

If語句和switch語句的區別

一、相同點:if語句和switch語句均可以表達分支結構

二、不一樣點:

一、if語句格式相對靈活,更增強大,switch語句相對弱小。全部的switch語句均可以被if語句替代。

二、if語句更多的是作一些連續性的判斷,而switch語句更多的是作一些離散性的匹配

三、if語句每次都須要獲取表達式的值,而switch只獲取一次表達式的值,因此相對switch的效率高一些。

代碼示例

class Demo_12 { public static void main(String[] args) { //if語句和switch語句區別 //if語句連續性的判斷

int i  = 60; if(i > 1 && i < 100){   // 1< i<100
 System.out.println(i); } switch(j*j){//離散型的匹配

case 1: case 2: case 3: } if(j * j > 10){ }else if(j*j < 10){ } } }

 

練習

鍵盤錄入一個學生的成績,int類型的分數,根據錄入的分數,輸出分數等級

[90, 100],優秀   大於等於90小於等於100

[80,90),良好     大於等於80小於90

[60, 80),及格

[0, 60),不及格

使用兩種方式完成:

一、使用if語句完成

二、使用switch語句完成

代碼示例

import java.util.Scanner; class Demo_13 { public static void main(String[] args) { /* 鍵盤錄入一個學生的成績,int類型的分數,根據錄入的分數,輸出分數等級 [90, 100],優秀 大於等於90小於等於100 [80,90),良好 大於等於80小於90 [60, 80),及格 [0, 60),不及格 */ Scanner sc =  new Scanner(System.in); System.out.println("請輸入學生的成績"); int score = sc.nextInt(); switch(score / 10){ case 0 : case 1 : case 2 : case 3 : case 4 : case 5 : System.out.println("不及格"); break; case 6 : case 7 : System.out.println("及格"); break; case 8 : System.out.println("良好"); break; case 9 : case 10 : System.out.println("優秀"); break; default: System.out.println("你輸入的成績不合法"); } /* if(score >= 90 && score <= 100){ System.out.println("優秀"); }else if(score >= 80 && score < 90){ System.out.println("良好"); }else if(score >=60 && score < 80){ System.out.println("及格"); }else if(score >=0 && score < 60){ System.out.println("不及格"); }else{ System.out.println("你輸入的不是成績吧"); }*/ } }
相關文章
相關標籤/搜索