Java流程控制01
阿新 • • 發佈:2021-07-20
01使用者互動scanner
-
scanner物件
-
java.util.Scanner是jdk5的新特性,我們也可以通過scanner來獲取使用者的輸入
-
通過scanner類的next()與nextLine()方法獲取輸入的字串,在讀取前我們一般需要用hasNext()與hasNextLine()判斷是否還有輸入的資料
next()
(1). 要讀取到有效字元後才可以結束輸入
(2).對輸入有效字元之前遇到的空白,next()方法會自動將其去掉
(3).只有輸入有效字元後才將其後面輸入的空白作為分隔符或者結束符
(4).next()不能的到帶有空格的字串
import java.util.Scanner;
public class Next {
public static void main(String[] args) {
//建立一個掃描器物件,用於接收鍵盤資料
Scanner scanner = new Scanner(System.in);//System.in 輸入,Sysyem.out 輸出
//自動補全Alt+enter
System.out.println("使用next方式接收:");
//判斷使用者有沒有輸入字串
if(scanner.hasNext()){
//使用next方式去接收
String str =scanner.next();//程式會等待使用者輸入完畢
System.out.println("輸出的內容為:"+str);
}
scanner.close();
//凡是屬於IO流的如果不關閉將會一直佔用資源,要養成良好習慣用完就關掉
}
}
nextLine()
(1).以Enter為結束符,也就是說nextLine()方法返回的是輸入回車之前的所有字元
(2).可以獲得空白
import java.util.Scanner;
public class NextLine {
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();
}
}
舉個例子
栗子1
import java.util.Scanner;
public class example1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//從鍵盤接收資料
int i=0;
float f=0.0F;
System.out.println("請輸入整數:");
if(scanner.hasNextInt()){
i = scanner.nextInt();
System.out.println("輸出一個整數資料:"+i);
}else{
System.out.println("輸入的不是一個整數資料!");
}
System.out.println("請輸入小數");
if(scanner.hasNextFloat()){
f=scanner.nextFloat();
System.out.println("小數資料:"+f);
}else{
System.out.println("輸入的不是一個小數資料!");
}
scanner.close();
}
}
栗子2
import java.util.Scanner;
public class Day5 {
public static void main(String[] args) {
//我們可以輸入多個數字,並求其總和與平均數,每輸入一個數字用回車來確認,通過輸入非數字來結束輸入並輸出結果。
Scanner scanner = new Scanner(System.in);//和
double sum=0;
int m=0;//計算輸入了多少個數字
//通過迴圈判斷是否還有輸入,並在裡面對每一次進行求和統計
System.out.println("請輸入資料:");
while(scanner.hasNextDouble()){
double x=scanner.nextDouble();
m=m+1;//m++
sum=sum+x;
System.out.println("你輸入了第"+m+"個數據,然後當前結果sum="+sum);
}
System.out.println(m+"個數的和為"+sum);
System.out.println(m+"個數的平均值是"+(sum/m));
scanner.close();
}
}
02順序結構
它是Java的基本結構
它是任何一個演算法都離不開的基本演算法結構
03選擇結構
if選擇結構
-
if的單選擇結構
import java.util.Scanner;
public class IfDay1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入內容:");
String s = scanner.nextLine();
//equals:判斷字串是否相等
if(s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
scanner.close();
}
}
-
if的雙選擇結構
import java.util.Scanner;
public class IfDay2 {
public static void main(String[] args) {
//考試分數大於60就是及格,小於60就是不及格
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入成績:");
int score = scanner.nextInt();
if(score>=60&&score<=100){
System.out.println("及格");
}else{
System.out.println("不合格");
}
scanner.close();
}
}
-
if的多選擇結構
-
if語句至多有一個else語句,else語句在所有的else if語句之後
-
if語句可以有若干個else if 語句,它們必須在else語句之前
-
一旦其中一個else if語句檢驗為true,其他的else if以及else語句都將跳過執行
import java.util.Scanner;
public class IfDay3 {
public static void main(String[] args) {
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("a");
}else if(score<90&&score>=80){
System.out.println("b");
}else if (score<80&&score>=70){
System.out.println("c");
}else if (score<70&&score>=60){
System.out.println("d");
}else if (score<60&&score>=0){
System.out.println("不及格" );
}else{
System.out.println("成績不合法");
}
scanner.close();
}
}
-
巢狀的if結構
switch多選擇結構
switch case 語句判斷一個變數與一系列值中的某個值是否相等,每個值稱為一個分支
-
switch語句的變數型別
*byte,short,int,或者char
*從Java SE7開始
*switch支援字串String型別
*同時case標籤必須為字串常量或字面量
注意:專案結構用Ctrl+shift+Alt+s
public class SitchDay1 {
public static void main(String[] args) {
//case 穿透//switch匹配一個具體的值
char grade='B';
switch(grade){
case'A':
System.out.println("優秀");
break;//可選
case'B':
System.out.println("良好");
break;
case'C':
System.out.println("及格");
break;
case'D':
System.out.println("再接再厲");
break;
case'E':
System.out.println("掛科");
break;
default:
System.out.println("未知等級");
}
}
}
public class SwitchDay2 {
public static void main(String[] args) {
String name = "見青山" ;
//jdk7的新特性,表示式結果可以是字串
//字元的本質還是數字
//反編譯 java---class(位元組碼檔案)--反編譯(IDEA)
switch(name){
case"小明":
System.out.println("小明");
break;
case"見青山":
System.out.println("見青山");
break;
default:
System.out.println("弄啥嘞!");
}
}
}