以下內容學習于狂神說Java,b站視頻
由于技術問題,圖片可能錯位,有問題請聯系博主修改
一、用戶互動
1、Scanner物件
-
之前學習的基本語法中并沒有實作程式和人的互動,但是Java提供了一個工具類,可以獲取用戶的輸入,java.util.Scanner是jdk5的新特性,可以通過Scanner類來獲取用戶的輸入,
-
基本語法:
Scanner s = new Scanner(System.in); -
通過Scanner類的next()與nextLine()方法獲取輸入的字串,在讀取前一般需要使用 hasNext()與hasNextLine()判斷是否還有輸入的資料,
-
也可以不進行判斷直接使用next()與nextLine()方法獲取輸入的字串,
-
注意以下內容:
//可以使用int long double float
1)、next():
-
1、一定要讀取到有效字符之后才可以結束輸入,
-
2、對于輸入有效字符之前遇到的空白,next()方法會自動去掉,
-
3、直到檢測到第一個有效字符后,才將其后面輸入的空白作為分隔符或者結束符,
-
4、next()不能得到帶有空格的字串,
package com.LinYIN.Scanner; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { //創建一個掃描器物件,用于接收鍵盤資料 Scanner scanner = new Scanner(System.in); System.out.println("使用next()方式接收:"); //hasNext()判斷用戶有沒有輸入字串 if (scanner.hasNext()){ //使用next()方式接收 String str = scanner.next();//程式會等待用戶輸入完畢 System.out.println("輸出的內容為:"+str); } //凡是屬于IO流的類如果不關閉則會一直占用資源 //切記用完之后必須要用scanner.close();陳述句關閉 scanner.close(); } }
2)、 nextLine():
-
1、以Enter為結束符,nextLine()方法回傳的是輸入回車之前的所有字符,
-
2、可以獲得空格符,
package com.LinYIN.Scanner; import java.util.Scanner; public class Demo02 { public static void main(String[] args) { //創建一個掃描器物件,用于接收鍵盤資料 Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine()方式接收:"); //hasNextLine()判斷用戶有沒有輸入字串 if (scanner.hasNextLine()){ //使用nextLine()方式接收 String str = scanner.nextLine();//程式會等待用戶輸入完畢 System.out.println("輸出的內容為:"+str); } //凡是屬于IO流的類如果不關閉則會一直占用資源 //一定要時刻記住用完之后必須要用scanner.close();陳述句關閉 scanner.close(); } }
-
接收數字:
package com.LinYIN.Scanner; import java.util.Scanner; public class Demo04 { 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(); } }
package com.LinYIN.Scanner; import java.util.Scanner; public class Demo05 { public static void main(String[] args) { //輸入多個數字,并求其總和與平均數 //每輸入一個數字用回車確認,通過輸入非數字來結束輸出執行結果 Scanner scanner = new Scanner(System.in); //和 double sum = 0; //計算輸入了多少個數字 int m = 0; //通過回圈判斷是否還有輸入,并在里面對每一次進行求和和統計 while(scanner.hasNextDouble()){ double x = scanner.nextDouble(); m = m + 1;//m++ sum = sum + x; System.out.println("你輸入了第" + m + "個數,當前結果為:" + sum); } System.out.println(m + "個數的和為:" + sum); System.out.println(m + "個數的平均值為:" + (sum/m)); scanner.close(); } }
2、print與println的區別
package com.LinYIN.Scanner;
import sun.awt.windows.WPrinterJob;
public class Demo06 {
public static void main(String[] args) {
int i = 0;
System.out.print("print輸出不換行:");
while (i<5){
i++;
System.out.print(i);
}
System.out.println();
System.out.println("println輸出換行:");
int j = 0;
while(j<5){
j++;
System.out.println(j);
}
}
}

二、順序結構
- JAVA的基本結構就是順序結構,除非特別指明,否則就按照順序一句一句執行

-
順序結構是最簡單的演算法結構
-
陳述句與陳述句之間,框與框之間是按從上到下的順序進行的,由若干個依次執行的處理步驟組成,任何一種演算法都離不開順序結構
package com.LinYIN.struct; public class ShunXuDemo { public static void main(String[] args){ System.out.println("這是第一步"); System.out.println("這是第二步"); System.out.println("這是第三步"); System.out.println("這是第四步"); System.out.println("這是第五步"); System.out.println("這是第六步"); } }
三、選擇結構
1、if單選擇結構

-
語法:
if(布爾運算式){ //如果布爾運算式為true則執行這個花括號內的陳述句 陳述句1; 陳述句2; 陳述句3; }package com.LinYIN.struct; import java.util.Scanner; public class IfDemo01 { 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("布爾運算式成立"); } scanner.close(); } }
2、if雙選擇結構

-
語法:
if(布爾運算式){ 陳述句1; }else{ 陳述句2; } //如果布爾運算式為true則執行陳述句1 //如果布爾運算式為false則執行陳述句2package com.LinYIN.struct; import java.util.Scanner; public class IfDemo02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //輸入成績,如果大于60則輸出及格,否則輸出不及格 System.out.println("請輸入成績:"); int score = scanner.nextInt(); if(score>=60){ System.out.println("及格"); }else{ System.out.println("不及格"); } scanner.close(); } }
3、if多選擇結構

- 語法:
if(布爾運算式1){
陳述句1;//如果布爾運算式1為true,則執行陳述句1,剩下的陳述句不執行
}else if(布爾運算式2){
陳述句2;//如果布爾運算式1為false,布爾運算式2為true,則執行陳述句2,剩下的陳述句不執行
}else if(布爾運算式3){
陳述句3;//如果布爾運算式1為false,布爾運算式2為false,布爾運算式3為true,則執行陳述句3,剩下的陳述句不執行
}else{
陳述句4;//如果上述布爾運算式都為false,則執行陳述句4,剩下的陳述句不執行
}
package com.LinYIN.struct;
import java.util.Scanner;
public class IfDemo03 {
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();
}
}

4、嵌套的if結構
-
語法:
if(布爾運算式1){ 陳述句1; if(布爾運算式2){ 陳述句2; } }
5、switch多選擇結構
- switch case 陳述句判斷一個變數與一系列值中的某個值是否相等,每個值稱為一個分支
switch(expression){
case value1:
陳述句1;
break;//break可以不加,但建議加上
case value2:
陳述句2;
break;
default: //default可選
陳述句3;
}
- switch 陳述句中的變數型別可以是:
- byte、short、int 或者 char
- 從JKD7開始switch支持String型別
- 同時case標簽必須為字串常量或字面量
- 加break:
package com.LinYIN.struct;
import java.util.Scanner;
public class SwitchDemo01 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("輸入字母:");
String grade = scanner.nextLine();
//jdk7以后支持字串比較
switch(grade){
case "ABC":
System.out.println("你輸入了ABC");
break;
case "BCD":
System.out.println("你輸入了BCD");
case "CDE":
System.out.println("你輸入了CDE");
case "DEF":
System.out.println("你輸入了DEF");
default:
System.out.println("未匹配成功");
}
scanner.close();
}
}

- 不加break:
package com.LinYIN.struct;
import java.util.Scanner;
public class SwitchDemo01 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("輸入字母:");
String grade = scanner.nextLine();
//jdk7以后支持字串比較
switch(grade){
case "ABC":
System.out.println("你輸入了ABC");
//break;
case "BCD":
System.out.println("你輸入了BCD");
case "CDE":
System.out.println("你輸入了CDE");
case "DEF":
System.out.println("你輸入了DEF");
default:
System.out.println("未匹配成功");
}
scanner.close();
}
}

-
反編譯
- 查找反編譯檔案












四、回圈結構
1、while回圈
- 結構
while(布爾運算式){
//回圈內容
}
package com.LinYIN.struct;
public class WhileDemo01 {
public static void main(String[] args) {
//輸出1~10
int i = 0;
while(i<10){
i++;
System.out.println(i);
}
}
}

- while死回圈
package com.LinYIN.struct;
public class WhileDemo02 {
public static void main(String[] args) {
//死回圈
while (true) {
System.out.println("死回圈");
}
}
}

- 計算1+2+3+…+100
package com.LinYIN.struct;
public class WhileDemo03 {
public static void main(String[] args) {
//計算1+2+3+...+100
int i = 0;
int sum = 0;
while(i<=100){
sum += i;
i++;
}
System.out.println(sum);
}
}

2、do…while回圈
- 語法
do{
//代碼陳述句
}while(布爾運算式);
- while 和 do…while的區別:
- while先判斷后執行,do…while先執行后判斷
- do…while保證回圈體至少執行一次
package com.LinYIN.struct;
public class DoWhileDemo01 {
public static void main(String[] args) {
int i = 0;
while(i<0){
System.out.println("while輸出i值:"+i);
i++;
}
do {
System.out.println("do...while輸出i值:"+i);
i++;
}while(i<0);
}
}

3、for回圈
- 語法
for(初始化;布爾運算式;更新){
//代碼陳述句
}
package com.LinYIN.struct;
public class ForWhileDemo01 {
public static void main(String[] args) {
//初始化//條件判斷//迭代
for(int i = 0; i <= 10; i++){
System.out.println(i);
}
System.out.println("for回圈結束!");
}
}

- 練習1:計算0~100之間奇數與偶數的和
package com.LinYIN.struct;
public class ForDemo02 {
public static void main(String[] args) {
//計算0~100之間奇數和偶數的和
int oddSum = 0;
int evenSum = 0;
for (int i = 0; i <= 100; i++) {
if (i%2!=0){
oddSum += i;
}else{
evenSum += i;
}
}
System.out.println("奇數的和:" + oddSum);
System.out.println("偶數的和:" + evenSum);
}
}

- 練習2:用while或for回圈輸出1~1000之間能被5整除的數,并每行輸出3個
package com.LinYIN.struct;
public class ForDemo03 {
public static void main(String[] args) {
//練習2:用while或for回圈輸出1~1000之間能被5整除的數,并每行輸出3個
for (int i = 0; i <= 100; i++) {
if (i%5==0){//判斷能被5整除的數
System.out.print(i+"\t");
}
if (i%(5*3)==0){//每3個換行
System.out.println();
}
}
}
}

- 練習3:九九乘法表
package com.LinYIN.struct;
public class ForDemo04 {
public static void main(String[] args) {
//列印九九乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + (i*j) + "\t");
}
System.out.println();
}
}
}

五、 break & continue
1、break
package com.LinYIN.struct;
public class BreakDemo {
public static void main(String[] args) {
int i = 0;
int j = 0;
while(i<100){
i++;
System.out.print(i+"\t");
if(i%10==0){
j++;
System.out.println();
System.out.println("第"+j+"次i="+i+"使得i%10==0條件判斷成立,終止回圈");
break;//break強制退出回圈,不執行剩余的回圈陳述句
}
}
System.out.println("回圈結束");
}
}

2、continue
package com.LinYIN.struct;
public class ContinueDemo {
public static void main(String[] args) {
int i = 0;
int j = 0;
while(i<100){
i++;
System.out.print(i+"\t");
if(i%10==0){
j++;
System.out.println();
System.out.println("第"+j+"次i="+i+"使得i%10==0條件判斷成立,終止本次回圈");
continue;//continue只是終止本次條件下回圈程序,跳過未執行的陳述句,接著進行下一次是否執行回圈的判斷
}
}
System.out.println("回圈結束");
}
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/267360.html
標籤:java
上一篇:11.堆排序
