JAVA的學習日記7
阿新 • • 發佈:2020-09-10
Java流程控制
Scanner物件
之前學的基本語法中並沒有實現程式和人的互動,但是Java提供了這樣一個工具類,可以獲取使用者的輸入。
java.util.Scanner
是Java5
的新特徵,我們可以通過Scanner類來獲取使用者輸入
-
基本語法
Scanner s = new Scanner(System.in);
-
通過
Scanner
類的next()
和nextline()
方法獲取輸入的字串,在讀取前一般需要使用hasNext()
和hasNextLine()
判斷是否還有輸入的資料
Next的用法
package com.cdoudou.scanner; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { //建立一個掃描器物件,用於接收鍵盤資料 Scanner scanner = new Scanner(System.in); System.out.println("用next的方式接受"); //判斷使用者有沒有輸入字串 if(scanner.hasNext()){ //使用next接收 String str = scanner.next(); System.out.println("輸出內容為:"+str); } //注意使用完要注意關掉 凡是從屬於IO流的類,如果使用完不關閉會一直佔用資源 scanner.close(); } }
NextLine()用法
package com.cdoudou.scanner; import java.util.Scanner; public class Demo02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine接收字串:"); if(scanner.hasNextLine()){ String str = scanner.nextLine(); System.out.println("接受的內容為:"+str); } scanner.close(); // int sum = 0; // for (int i = 0; i < 10; i++) { // sum += i; // if(i % 3 == 0){ // break; // } // } // System.out.println(sum); } }
Next()和NextLine()的區別
next()
- 1.一定要讀取到有效字元後才可以結束輸入
- 2.對輸入有效字元之前遇到的空白,next()方法會自動將其去掉
- 3.只有輸入有效字元後才將其後面輸入的空白作為分隔符或者結束符
- 4.next()不能得到帶有空格的字串
nextLine()
- 1.以Enter為結束符,也就是說nextLine()方法返回的是輸入回車之前的所有字元
- 2.可以獲得空白
也可以輸入中文
package com.cdoudou.scanner; import java.util.Scanner; public class Demo03 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine接收字串:"); String str = scanner.nextLine(); System.out.println("接受的內容為:"+str); scanner.close(); /* * 使用nextLine接收字串: 可以輸入中文的 接受的內容為:可以輸入中文的 * */ } }
順序結構
- Java的基本結構就是順序結構,除非特別指明,否則就按照順序一句一句執行
- 順序結構是最簡單的演算法結構
- 語句與語句之間,框與框之間是按從上到下的順序執行的,它是由若干個依次執行的處理步驟組成的,它是任何一個演算法都離不開的一種基本演算法結構
- 因為是經常寫,所以可能會忘記有這麼一個結構
package com.cdoudou.struct;
public class orderDemo1 {
public static void main(String[] args) {
//順序結構
System.out.println("hello1");
System.out.println("hello2");
System.out.println("hello3");
System.out.println("hello4");
}
}
選擇結構
- if單選擇結構
- if雙選擇結構
- if多選擇結構
- 巢狀的if結構
- switch多選擇結構
if單選擇結構
- 很多時候需要去判斷一個東西是否可行,然後才去執行,這樣一個過程在程式中用if語句來表示
- 語法:
if(布林表示式){
//如果布林表示式為true將執行的語句
}
package com.cdoudou.struct;
import java.util.Scanner;
public class ifDemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
//equals():用來比較字串是否相等
if(str.equals("hello")){
System.out.println("world");
}
System.out.println("end");
scanner.close();
}
}
if雙選擇結構
- 語法:
if(布林表示式){
//如果布林表示式的值為true
}else{
//如果布林表示式的值為false
}
package com.cdoudou.struct;
import java.util.Scanner;
public class ifDemo02 {
public static void main(String[] args) {
//考試分數如果大於60就是及格,否則為不及格
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入成績:");
int score = scanner.nextInt();
if(score > 60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
scanner.close();
}
}
if多選擇結構
- 語法:
if(布林表示式1){
//如果布林表示式1的值為true,執行程式碼
}else if(布林表示式2){
//如果布林表示式2的值為true,執行程式碼
}else if(布林表示式3){
//如果布林表示式3的值為true,執行程式碼
}else{
//如果以上的布林表示式的值都不為true,執行程式碼
}
package com.cdoudou.struct;
import java.util.Scanner;
public class ifDemo03 {
public static void main(String[] args) {
//考試分數如果大於60就是及格,否則為不及格
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入成績:");
int score = scanner.nextInt();
if(score == 100){
System.out.println("滿分");
}else if(score < 100 && score >= 90){
System.out.println("優秀");
}else if(score < 90 && score >= 80){
System.out.println("良好");
}else if(score < 80 && score >= 60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
scanner.close();
}
}
巢狀的if結構
- 使用巢狀的if...else語句是合法的,也就是說可以在另一個if或者else if語句中使用if或者else if語句。可以像if語句一樣巢狀else if...else
- 語法:
if(布林表示式1){
//如果布林表示式1的值為true,執行程式碼
if(布林表示式2){
//如果布林表示式2的值為true,執行程式碼
}
}