1.使用者互動 Scanner
Scanner 物件:獲取使用者的輸入
基本語法:Scanner s = new Scanner(System.in);
透過 Scanner 類的 next() 和 nextLine() 方法獲取輸入的字串,在讀取前一般使用 hasNext() 和 hasNextLine() 判斷是否還有輸入的資料。
next():
- 一定要讀取到有效字元後才可以結束輸入;
- 對輸入有效字元之前遇到的空白,next() 方法會自動將其去掉;
- 只有輸入有效字元後才將其後面輸入的空白作為分割符或結束符;
- next() 不能得到帶有空格的字串。
nextLine():
- 以 Enter 為結束符,也就是說 nextLine() 方法返回的是輸入回車之前的所有字元;
- 可用獲得空白。
注意:此物件中還有其它的型別方法,如:nextInt()、hasNextInt()
Demo1.java
public class Demo1 {
public static void main(String[] args) {
// 建立一個掃描器物件,用於接收鍵盤資料
Scanner scanner = new Scanner(System.in);
System.out.println("使用 next 方式接收");
// 判斷使用者有沒有輸入字串
//if (scanner.hasNextLine())
if (scanner.hasNext()){
// 使用 next 方式接收
// String str = scanner.nextLine();
String str = scanner.next();
System.out.println("輸出的內容為:"+str);
}
// 凡是屬於 IO 流的類,如果不關閉會一直佔用資源,要養成好習慣用完就關掉
scanner.close();
}
}
2.順序結構
除非特別說明,否則按順序一行一行執行
3.選擇結構
3.1.if 選擇結構
語法:
if (條件1){
// 命令語句
} else if (條件2){
// 命令語句
} else if (條件3){
// 命令語句
} else{
// 命令語句
}
3.2.switch 選擇結構
變數型別:
- byte、short、int 或者 char
- 從 Java SE 7 以後,switch 支援字串 String 型別了
- case 標籤必須為字串常量或字面量(透過 hashCode 來對比)
語法:
switch(expression){
case value1 :
//語句
break; //可選
case value2 :
//語句
break; //可選
default :
//語句
}
支援字串常量:
String name="小明";
switch(name){
case "小明" :
System.out.println("小明");
break;
case "小紅" :
System.out.println("小紅");
break;
default :
System.out.println("小江");
}
4.迴圈結構
4.1.while 迴圈
語法:
while(布林表示式){// 只要表示式成立就一直迴圈
//迴圈內容
}
1到100的和:
int i = 0;
int sum = 0;
while(i<=100){
sum += i;
}
System.out.println("sum="+sum);
4.2.do...while 迴圈
語法:先執行一遍迴圈內容,再進行布林表示式判斷
do{
// 迴圈內容
} while(布林表示式)
4.3.for 迴圈
語法:
for(初始化; 布林表示式; 更新){
// 迴圈語句
}
計算 1-100 的和:
int sum;
for(int i=0; i <= 100; i++){
sum += i;
}
System.out.println("sum="+sum);
// 死迴圈:for(;;){}
九九乘法表:
for(int j = 1; j <= 9; j++){
for(int i = 1; i <= j; i++){
System.out.print(j+"*"+i+"="+(j*i)+"\t")
}
System.out.println();
}
4.3.增強 for 迴圈
語法:
int[] numbers = {10,20,30,40,50}
for(int x:numbers){// for(int i=0;i<numbers.length;i++)(sout(numbers[i]);)
System.out.println(x);
}
5.break & continue
break:跳出所有的迴圈
continue:跳出本次迴圈
goto 關鍵字:Java 中沒有goto,但有一些 goto 的影子--帶標籤(指後面跟一個冒號的識別符號,如:label:)的break和continue(不建議使用)
6.練習
列印三角形:
for(int i=0;i<=5;i++){
for(int j=5;j>=i;j--){
System,out.print(" ");
}
for(int j=1;j<=i;j++){
System,out.print("*");
}
for(int j=1;j<i;j++){
System,out.print("*");
}
System.out.println();
}