目錄
一.java中的程式邏輯分類
1.順序結構:
2.分支結構
(1)單分支結構(if陳述句)
(2)多分支結構(if-else if-else)
(3)switch陳述句
注意事項:
3回圈結構
(1)while回圈
注意事項
(2)break與continue
(2)for回圈
(3)do-while回圈結構
注意事項:
二 java 中的輸入與輸出
1 輸出到控制臺
2 從鍵盤輸入
三 習題練習
一.java中的程式邏輯分類
1.順序結構:
此類代碼比較簡單,就代碼一步一步的按照順序執行,
System.out.println("a");
System.out.println("b");
System.out.println("c");
// 運行結果
a
b
c
2.分支結構
(1)單分支結構(if陳述句)
基本語法格式1:
if(布爾運算式){
//條件滿足時執行代碼
}
基本語法格式2:
if(布爾運算式){
//條件滿足時執行代碼
}else{
//條件不滿足時執行代碼
}
(2)多分支結構(if-else if-else)
語法格式:
if(布爾運算式){
//條件滿足時執行代碼
}else if(布爾運算式){
//條件滿足時執行代碼
}else{
//條件都不滿足時執行代碼
}
1 注意事項1:懸垂else問題
int x = 10;
int y = 10;
if (x == 10)
if (y == 10)
System.out.println("aaa");
else
System.out.println("bbb");
同C語言一樣,else與最近的if進行匹配,但在實際的開發中會增加代碼閱讀的難度,最好要加上大括號,避免這種懸垂else問題,
2 注意事項2:代碼風格問題
// 風格1
int x = 10;
if (x == 10) {
// 滿足條件
} else {
// 不滿足條件
}
// 風格2
int x = 10;
if (x == 10)
{
// 滿足條件
}
else
{
// 不滿足條件
}
在java中我們一般推薦使用風格1,把if/else放在同一行
3 注意事項三:分號問題
int x = 20;
if (x == 10); {
System.out.println("hehe");
}
// 運行結果
hehe
因為這里有這個分號,導致分號成為if的陳述句體,從而使得{}中的代碼與if無關
(3)switch陳述句
基本語法格式:
switch(整數|列舉|字符|字串){
case 內容1 : {
內容滿足時執行陳述句;
[break;]
}
case 內容2 : {
內容滿足時執行陳述句;
[break;]
}
...
default:{
內容都不滿足時執行陳述句;
[break;]
}
switch中的值不一樣,就會執行不同的case陳述句,遇到break才結束,不然會一直往下執行,switch值case如果都沒有與之對應,就會執行默認的default陳述句
注意事項:
1.break不要遺落,否則會失去多分支的效果
int day = 1;
switch(day) {
case 1:
System.out.println("星期一");
// break;
case 2:
System.out.println("星期二");
break;
}
// 運行結果
星期一
星期二
2注意switch中的值只有整數|列舉|字符|字串才能符合
double num = 1.0;
switch(num) {
case 1.0:
System.out.println("hehe");
break;
case 2.0:
System.out.println("haha");
break;
}
// 編譯出錯
Test.java:4: 錯誤: 不兼容的型別: 從double轉換到int可能會有損失
在java中,在8中基本資料型別不能做switch引數的資料型別:long,float,double,boolean
3 switch不能表達復雜的條件
// 例如: 如果 num 的值在 10 到 20 之間, 就列印 hehe
// 這樣的代碼使用 if 很容易表達, 但是使用 switch 就無法表示.
if (num > 10 && num < 20) {
System.out.println("hehe");
}
4 switch支持嵌套的,但是很丑,switch的局限還是比較大的,
3回圈結構
(1)while回圈
基本語法格式:
while(回圈條件){
回圈陳述句;
}
回圈條件為true就執行,false則退出回圈
注意事項
1.和if類似,while后面的{}可以不加,但不加只能支持一條陳述句
2和if類似,while后面的{建議與while寫在同一行
3和if類似,while后面不要多加分號,否則導致回圈不能正確執行
int num = 1;
while (num <= 10); {
System.out.println(num);
num++;
}
// 執行結果,此時 ; 為 while 的陳述句體(這是一個空陳述句), 實際的 { } 部分和回圈無關. 此時回圈條件 num <= 10 恒成立, 導致代碼
死回圈了
[無任何輸出, 程式死回圈]
(2)break與continue
1 break就是讓回圈提前結束
//找到 100 - 200 中第一個 3 的倍數
int num = 100;
while (num <= 200) {
if (num % 3 == 0) {
System.out.println("找到了 3 的倍數, 為:" + num);
break;
}
num++;
}
// 執行結果
找到了 3 的倍數, 為:102
2 continue就是跳過本次回圈,進入下一次的回圈
//找到 100 - 200 中第一個 3 的倍數
int num = 100;
while (num <= 200) {
if (num % 3 != 0) {
num++; // 這里的 ++ 不要忘記! 否則會死回圈.
continue;
}
System.out.println("找到了 3 的倍數, 為:" + num);
num++;
}
//執行到 continue 陳述句的時候, 就會立刻進入下次回圈(判定回圈條件), 從而不會執行到下方的列印陳述句.
(2)for回圈
基本語法格式:
for(運算式1;運算式2;運算式3){
回圈體;
}
//運算式1: 用于初始化回圈變數.
//運算式2: 回圈條件
//運算式3: 更新回圈變數.
注意事項同while
(3)do-while回圈結構
基本語法格式
do{
回圈陳述句;
}while(回圈條件);
一般先執行陳述句在判定條件
注意事項:
不要忘記while后面還有分號
二 java 中的輸入與輸出
1 輸出到控制臺
基本語法
System.out.println(a); // 輸出一個字串, 帶換行
System.out.print(a); // 輸出一個字串, 不帶換行
Systemprintln 輸出的內容自帶 \n, print 不帶 \n
println是自帶\n的,print是不帶\n的
printf的輸出同C語言中的printf一致
2 從鍵盤輸入
1 使用Scanner讀取字串/整數/浮點數
import java.util.Scanner; // 需要匯入 util 包
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你的姓名:");
String name = sc.nextLine();
System.out.println("請輸入你的年齡:");
int age = sc.nextInt();
System.out.println("請輸入你的工資:");
float salary = sc.nextFloat();
System.out.println("你的資訊如下:");
System.out.println("姓名: "+name+"\n"+"年齡:"+age+"\n"+"工資:"+salary);
sc.close(); // 注意, 要記得呼叫關閉方法
// 執行結果
請輸入你的姓名:
張三
請輸入你的年齡:
18
請輸入你的工資:
1000
你的資訊如下:
姓名: 張三
年齡:18
工資:1000.0
2 使用Scanner回圈讀取N個數字
Scanner sc = new Scanner(System.in);
double sum = 0.0;
int num = 0;
while (sc.hasNextDouble()) {
double tmp = sc.nextDouble();
sum += tmp;
num++;
}
System.out.println("sum = " + sum);
System.out.println("avg = " + sum / num);
// 執行結果
10
40.0
50.5
^Z
sum = 150.5
avg = 30.1 sc.close();
注意事項:
當回圈輸入多個資料時,使用ctrl+z結束輸入(Windows上使用ctrl+z,linux/mac上使用ctrl+d)
三 習題練習
最重要的法寶當然還得是多做多練,多理解,這里也為大家提供了相應的習題進行練習鏈接:https://mp.csdn.net/mp_blog/creation/editor/120815489
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/330299.html
標籤:java
