引用數(shù)據(jù)數(shù)據(jù)類型(Scanner、Random)
流程控制語句(if、for、while、dowhile、break、continue)
1.1引用數(shù)據(jù)類型的使用
與定義基本數(shù)據(jù)類型的變量不同,引用數(shù)據(jù)類型的變量定義以及賦值有一個相對固定的步驟或格式。
數(shù)據(jù)類型 ?變量名 ?= ?new 數(shù)據(jù)類型();
?
每種引用數(shù)據(jù)類型都有其功能,我們可以調(diào)用該類型實例的功能。
?
變量名.方法名();
?
?
l?Scanner類
Scanner類是引用數(shù)據(jù)類型的一種,我們可以使用該類來完成用戶鍵盤錄入,獲取到錄入的數(shù)據(jù)。
?
Scanner使用步驟:
?
導(dǎo)包:import java.util.Scanner;
?
創(chuàng)建對象實例:Scanner sc?= new Scanner(System.in);
?
調(diào)用方法:
?
int ?i = sc.nextInt(); 用來接收控制臺錄入的數(shù)字
?
String s = sc.next(); 用來接收控制臺錄入的字符串
import java.util.Scanner;public class ScannerDemo01 { public static void main(String[] args) { //創(chuàng)建Scanner引用類型的變量 Scanner sc = new Scanner(System.in); //獲取數(shù)字 System.out.println("請輸入一個數(shù)字"); int n = sc.nextInt(); System.out.println("n的值為" n); //獲取字符串 System.out.println("請輸入一個字符串"); String str = sc.next(); System.out.println("str的值為" str); }}
l?方法簡介
public int nextInt(int maxValue) 產(chǎn)生[0,maxValue)范圍的隨機整數(shù),包含0,不包含maxValue;
public double nextDouble()??產(chǎn)生[0,1)范圍的隨機小數(shù),包含0.0,不包含1.0。
引用數(shù)據(jù)類型的使用方式,在學(xué)習(xí)鍵盤錄入Scanner時,我們已經(jīng)學(xué)習(xí)過,在這里,再次回顧一下:
?
l?Random使用方式:
?
l?import導(dǎo)包:所屬包java.util.Random??
?
l?創(chuàng)建實例格式:Random 變量名 = new Random();
import java.util.Random;public class RandomDemo { public static void main(String[] args) { // 創(chuàng)建Random類的實例 Random r = new Random(); // 得到0-100范圍內(nèi)的隨機整數(shù),將產(chǎn)生的隨機整數(shù)賦值給i變量 int i = r.nextInt(100); //得到0.0-1.0范圍內(nèi)的隨機小數(shù),將產(chǎn)生的隨機小數(shù)賦值給d變量 double d = r.nextDouble(); System.out.println(i); System.out.println(d); }}
?
流程控制語句
if…else語句是指如果滿足某種條件,就進行某種處理,否則就進行另一種處理。例如,要判斷一個正整數(shù)的奇偶,如果該數(shù)字能被2整除則是一個偶數(shù),否則該數(shù)字就是一個奇數(shù)。if…else語句具體語法格式如下:
?
if (判斷條件){ 執(zhí)行語句1 ……}else{ 執(zhí)行語句2 ……}
?上述格式中,判斷條件是一個布爾值。當(dāng)判斷條件為true時,if后面{}中的執(zhí)行語句1會執(zhí)行。當(dāng)判斷條件為false時,else后面{}中的執(zhí)行語句2會執(zhí)行。if…else語句的執(zhí)行流程如下圖所示。
?
接下來通過一段代碼,來實現(xiàn)判斷奇偶數(shù)的程序,IfDemo02.java
public class IfDemo02 { public static void main(String[] args) { int num = 19; if (num % 2 == 0) { // 判斷條件成立,num被2整除 System.out.println("num是一個偶數(shù)"); } else { System.out.println("num是一個奇數(shù)"); } }}
?
if…else if…else語句用于對多個條件進行判斷,進行多種不同的處理。例如,對一個學(xué)生的考試成績進行等級的劃分,如果分數(shù)大于80分等級為優(yōu),否則,如果分數(shù)大于70分等級為良,否則,如果分數(shù)大于60分等級為中,否則,等級為差。if…else if…else語句具體語法格式如下:
?
if (判斷條件1) { 執(zhí)行語句1} else if (判斷條件2) { 執(zhí)行語句2}...else if (判斷條件n) { 執(zhí)行語句n} else { 執(zhí)行語句n 1}
?
上述格式中,判斷條件是一個布爾值。當(dāng)判斷條件1為true時,if后面{}中的執(zhí)行語句1會執(zhí)行。當(dāng)判斷條件1為false時,會繼續(xù)執(zhí)行判斷條件2,如果為true則執(zhí)行語句2,以此類推,如果所有的判斷條件都為false,則意味著所有條件均未滿足,else后面{}中的執(zhí)行語句n 1會執(zhí)行。if…else if…else語句的執(zhí)行流程如下圖所示。
public class IfDemo03 { public static void main(String[] args) { int grade = 75; // 定義學(xué)生成績 if (grade > 80) { // 滿足條件 grade > 80 System.out.println("該成績的等級為優(yōu)"); } else if (grade > 70) { // 不滿足條件 grade > 80 ,但滿足條件 grade > 70 System.out.println("該成績的等級為良"); } else if (grade > 60) { // 不滿足條件 grade > 70 ,但滿足條件 grade > 60 System.out.println("該成績的等級為中"); } else { // 不滿足條件 grade > 60 System.out.println("該成績的等級為差"); } }}
?三元運算符,它和if-else語句類似,語法如下:
判斷條件 ? 表達式1 : 表達式2
?
三元運算符會得到一個結(jié)果,通常用于對某個變量進行賦值,當(dāng)判斷條件成立時,運算結(jié)果為表達式1的值,否則結(jié)果為表達式2的值。
例如求兩個數(shù)x、y中的較大者,如果用if…else語句來實現(xiàn),具體代碼如下:
int x = 0;int y = 1;int max;if (x > y) { max = x;} else { max = y;}
上面的代碼運行之后,變量max的值為1。其中3-8行的代碼可以使用下面的三元運算來替換。
int max = (x > y) ? x : y;
while循環(huán)語句和選擇結(jié)構(gòu)if語句有些相似,都是根據(jù)條件判斷來決定是否執(zhí)行大括號內(nèi)的執(zhí)行語句。區(qū)別在于,while語句會反復(fù)地進行條件判斷,只要條件成立,{}內(nèi)的執(zhí)行語句就會執(zhí)行,直到條件不成立,while循環(huán)結(jié)束,while循環(huán)語句的語法結(jié)構(gòu)如下:
while(循環(huán)條件){執(zhí)行語句………}
在上面的語法結(jié)構(gòu)中,{}中的執(zhí)行語句被稱作循環(huán)體,循環(huán)體是否執(zhí)行取決于循環(huán)條件。當(dāng)循環(huán)條件為true時,循環(huán)體就會執(zhí)行。循環(huán)體執(zhí)行完畢時會繼續(xù)判斷循環(huán)條件,如條件仍為true則會繼續(xù)執(zhí)行,直到循環(huán)條件為false時,整個循環(huán)過程才會結(jié)束。while循環(huán)的執(zhí)行流程如下圖所示:
實現(xiàn)打印1~4之間的自然數(shù),WhileDemo.java
public class WhileDemo { public static void main(String[] args) { int x = 1; // 定義變量x,初始值為1 while (x <= 4) { // 循環(huán)條件 System.out.println("x = " x); // 條件成立,打印x的值 x ; // x進行自增 } }}
for循環(huán)語句是最常用的循環(huán)語句,一般用在循環(huán)次數(shù)已知的情況下。for循環(huán)語句的語法格式如下:
?
for(初始化表達式; 循環(huán)條件; 操作表達式){ 執(zhí)行語句 ………}
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
來源:https://www.icode9.com/content-1-329401.html