文章目錄
- 一、邏輯控制陳述句
- 1. 順序結構
- 2. 分支結構
- 2.1 if 陳述句
- 2.2 switch 陳述句
- 3. 回圈結構
- 3.1 while 回圈
- 3.2 break
- 3.3 continue
- 3.4 for 回圈
- 3.5 do while 回圈
- 二、輸入輸出方式
- 1. 輸出到控制臺
- 2. 從鍵盤輸入
- 三、猜數字游戲
- 四、總結
一、邏輯控制陳述句
1. 順序結構
像我們寫的代碼,執行時會按照從上到下一行一行的執行,這就是順序結構,不同的順序,結果可能就不一樣,如
System.out.println(1)
System.out.println(2)
System.out.println(3)
該代碼結果為 1(換行)2(換行)3,但是如果把順序改變結果就變了
System.out.println(2)
System.out.println(3)
System.out.println(1)
該代碼結果就變為 2(換行)3(換行)1
2. 分支結構
2.1 if 陳述句
和 C 語言一樣,在 Java 中 if 陳述句也有三種基本的形式
形式一
if(布爾運算式){ // 條件滿足時執行的代碼 }形式二
if(布爾運算式){ // 條件滿足時執行的代碼 }else{ // 條件不滿足時執行的代碼 }形式三
if(布爾運算式1){ // 條件1滿足時執行的代碼 }else if(布爾運算式2){ // 條件2滿足時執行的代碼 }else{ // 條件都不滿足時執行的代碼 }
但是從形式上我們就可以看出還是有一些不同的
- 條件運算式必須是布林值,不能像 C 語言一樣直接使用一個數值,如
int a = 10; if(a){ System.out.println(a); }這種代碼就是錯的,條件必須是布林值
int a = 10; if(a > 0){ System.out.println(a); }這種代碼就是正確的
代碼風格問題,比如我寫 C 語言時喜歡把一對大括號并列在行首,但是在 java 中更推薦上述三種形式那樣的風格,將 { 放在 if 或 else 同一行
還要注意懸垂 else 問題,記住 else 是與 最接近的 if 匹配,如
int a = 2; if(a>0) if(a>10) System.out.println("a > 10"); else System.out.println("a > 0 && a <= 10");我們要知道,最下面的 else 是與與它最近的 if 匹配的
2.2 switch 陳述句
Java 中的 switch 陳述句和 C 語言中的幾乎一樣,大家如果不太熟悉 switch 以及該章所講解的一些邏輯結構可以去看看我寫的 C語言三大陳述句注意事項 ,但是既然不是完全一樣,那哪里有區別呢?
在 Java 中,switch(運算式) 中的運算式是有型別限制的,
它只能使用:整數(只包括 byte、short、int)、字符(char)、字串(String)、列舉型別
3. 回圈結構
3.1 while 回圈
舒服,Java 的 while 回圈和 C 語言也是極其類似,只有一個小的差異
while (運算式) 中的運算式必須是布林值
3.2 break
break 的功能是:讓最靠近包裹它的整個回圈提前結束,這也是和 C 語言是一樣的
3.3 continue
continue 的功能是:跳過本次回圈,立即進入下次回圈,這也是和 C 語言是一樣的
3.4 for 回圈
Java 中的 for 回圈和 C 語言中的也很類似,只有一個差異
for(運算式1;運算式2;運算式3) 中的運算式2是回圈的判斷條件,要使用布林值
3.5 do while 回圈
Java 中的 do while 回圈也是和 C 語言很類似,只有一個差異
while 中的回圈條件只能是布林值
但是一般不推薦使用,因為它至少會執行一次回圈,不注意可能會犯錯
二、輸入輸出方式
1. 輸出到控制臺
-
基本語法
System.out.println(msg); // 輸出一個字串,自帶換行 System.out.print(msg); // 輸出一個字串,不帶換行 System.out.printf(format,msg); // 格式化輸出,括號內內容類似于 C 語言的 printf -
代碼示例
int a = 10; System.out.println(a); // 輸出 a,自帶換行 System.out.print(a); // 輸出 a,不帶換行 System.out.printf("%d\n",a); // 格式化輸出,括號內內容類似于 C 語言的 printf -
格式化輸出表(隨用隨查)
轉換符 型別 例子 輸出結果 d 十進制整數 ("%d",100) 100 x 十六進制整數 ("%x",100) 64 o 八進制整數 ("%o",100) 144 f 定點浮點數 ("%f",100f) 100.000000 e 指數浮點數 ("%e",100f) 1.000000e+02 g 通用浮點數 ("%g",100f) 100.000 a 十六進制浮點數 ("%a",100) 0x1.9p6 s 字串 ("%s",100) 100 c 字符 ("%d",‘1’) 1 b 布林值 ("%b",100) true h 散列碼 ("%h",100) 64 % 百分號 ("%.2f%%",2/7f) 0.29%
2. 從鍵盤輸入
-
讀入一個字符(不推薦使用)
直接使用
System.in.read()可以讀入一個字符,但是需要搭配例外處理,如果不搭配例外,如下面代碼就會編譯出錯public static void main(String[] args) { System.out.print("Enter a char:"); char i = (char)System.in.read(); System.out.println("The char is :" + i); }我們需要將滑鼠放到 read 上面,再按住
Alt + Enter鍵就會出現
再點擊第一個或者第二個就不會報錯了,這里其實是處理了例外,但是一個簡單的讀入字符就要這么復雜所以不推薦使用,
-
使用 Scanner 讀取字符/字串/整數/浮點數/布林值
-
首先需要匯入 util 包
import java.util.Scanner;,在 IDEA 中,其可以通過輸入 Scanner 后直接回車快速匯入 -
然后再構造一個 Scanner 物件并與”標準輸入流“ System.in 關聯:
Scanner 物件名 = new Scanner(System.in); -
再就可以通過 Scanner 類的各種方法實作輸入操作了
import java.util.Scanner; public class TestDemo { public static void main(String[] args) { Scanner in = new Scanner(System.in); int a = in.nextInt(); //讀入一個整數 double b = in.nextDouble(); //讀入一個浮點數 boolean c = in.nextBoolean(); //讀入一個布林值 String s = in.next(); //讀入一個字串 } }但是要注意,上述讀入字串是按空白符當作分隔符的,故只能讀入第一個空格之前的字符,如果想要讀取該行的所有字符(包含空格),應該使用
String s = in.nextLine();但是使用這個方法還是有很大的缺陷,如果這行代碼上面還有其他讀入的陳述句,可能這行代碼就不會實行,因為上一行的回車可能被它讀入,直接這行結束,因此,只能將其放在讀入代碼的第一個或者在它前面加一個
in.nextLine();來讀取掉之前的回車,
-
-
我們知道在 C 語言中可以寫類似于這樣的代碼輸入多組資料
int a; while(scanf("%d",&a) != EOF) { // 內容 }在 C++ 中我們也可以寫類似于這樣的代碼輸入多組資料
int a; while(cin>>a) { // 內容 }那么在 Java 中怎么做呢?代碼如下
Scanner in = new Scanner(System.in); while(in.hasNextInt()){ int a = in.nextInt(); // 內容 }并且在 IDEA 上我們可以手動輸入
Ctrl + D結束,在 Windows 的 cmd 上 我們手動輸入Ctrl + Z結束,在 Linux 或 Mac 上,輸入Ctrl + D結束
三、猜數字游戲
學 C 語言的時候我們可能都接觸過亂數的生成,或者直接寫一個猜亂數的游戲,那么使用 Java 該怎么寫呢?
-
首先我們要知道在 Java 中亂數是怎么生成的,
-
首先需要匯入 util 包
import java.util.Random;,在 IDEA 中,其可以通過輸入 Random 后直接回車快速匯入 -
然后通過 Random 類中的方法生成我們想要的,如
import java.util.Random; public class TestDemo { public static void main(String[] args) { Random random = new random(); // 默認隨機種子是系統時間 int rand = random.nextInt(bound:100) + 1; // random.nextInt(bound:100) 是生成[0,100)間的隨機整數 } }
-
-
接下來就是很簡單了,只要我們輸入的數字與亂數字進行一下比較,直到判斷正確再退出就可,故最終的代碼是
public class TestDemo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Random random = new Random(); int rand = random.nextInt(100) + 1; while (true){ System.out.print("請輸入你所猜測的數字:"); int num = scanner.nextInt(); if(num == rand){ System.out.println("恭喜你,猜對了!"); break; }else if(num < rand){ System.out.println("很遺憾,你猜的數字小了!"); }else{ System.out.println("很遺憾,你猜的數字大了!"); } } } }
四、總結
這章講了 Java 的邏輯控制結構,包含了順序結構、順序結構和分支結構,還講了 Java 的輸入輸出方式,并在最后用 Java 程式寫了一個簡單的猜數字游戲,我們可以發現,很多都是和 C 語言類似的,這也降低了我們學習的難度,
下一章則是關于方法學習的介紹,這也是類似于 C 語言函式的東東,希望大家喜歡我的文章,自己也要繼續加油,奧里給!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293441.html
標籤:其他
