1. 程式人生 > 其它 >Java流程控制01

Java流程控制01

01使用者互動scanner

  1. 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選擇結構

  1. 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();
}
}

  1. 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();
}
}

  1. 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();
}

}

  1. 巢狀的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("弄啥嘞!");
}
}
}

使用IDEA生成javadoc文件