?作者主頁:paper jie的博客
本文作者:大家好,我是paper jie,感謝你閱讀本文,歡迎一建三連哦。
本文錄入于《JAVASE語法系列》專欄,本專欄是針對于大學生,編程小白精心打造的。筆者用重金(時間和精力)打造,將javaSE基礎知識一網打盡,希望可以幫到讀者們哦。
其他專欄:《算法詳解》《C語言》等
內容分享:本期將會對JAVA中的邏輯控制進行一個大致的講解~
前言
在前面,我們對java進行了一個簡單的概括,講解了它的數(shù)據類型和變量,操作符。這期文章我們將對java中的邏輯控制進行具體的講解,敬請期待~
分支結構
if語句
語法格式1
if(布爾表達式){
// 語句
}
在java中,如果布爾表達式結果為true,執(zhí)行if中的語句,否則不執(zhí)行
舉個栗子:如果阿三大于90歲就是長壽,否則就不是
int age = 95;
if(age >= 90){
System.out.println("阿三活太久了吧");
}
語法格式2
if(
布爾表達式){
// 語句1
}else{
// 語句2
}
如果布爾表達式結果為true,則執(zhí)行if中語句,否則執(zhí)行else中語句。?
舉個栗子:如果阿三大于90歲就是活太久了,否則就是短命鬼
int age = 95;
if(age >= 90){
System.out.println("阿三活太久了吧");
}else {
System.out.println("阿三是短命鬼");
}
語法格式3
if(
布爾表達式1){
// 語句1
}else if(布爾表達式2){
// 語句2
}else{
// 語句3
}
表達式1成立,執(zhí)行語句1,否則表達式2成立,執(zhí)行語句2,否則執(zhí)行語句3??
舉個栗子:有一場學生的考試需要評估,分數(shù)在 [90, 100] 之間的,為優(yōu)秀 分數(shù)在 [80, 90) 之前的,為良好 分數(shù)在 [70, 80) 之間的,為中等分數(shù) 在 [60, 70) 之間的,為及格分數(shù) 在 [ 0, 60) 之間的,為不及格 其他則為錯誤數(shù)據?
if(
score >= 90){
System.out.println("優(yōu)秀");
}else if(score >= 80 && score < 90){
System.out.println("良好");
}else if(score >= 70 && score < 80){
System.out.println("中等");
}else if(score >= 60 && score < 70){
System.out.println("及格");
}else if(score >= 0 && score < 60){
System.out.println("不及格");
}else{
System.out.println("錯誤數(shù)據");
}
注意:下面的代碼中,雖然兩種方式都是合法的, 但是 Java 中更推薦使用風格1, 可千萬不要把C的代碼風格帶到java中。
// 風格1-----> 推薦
int x = 10;
if (x == 10) {
// 語句1
} else {
// 語句2
}
//風格二
int x = 10;
if (x == 10)
{
// 語句1
} e
lse
{
// 語句2
}
大家在編寫代碼的時候,要注意千萬不能在括號后面出現(xiàn);下面的代碼就是案例,多寫了一個 分號, 導致分號成為了 if 語句的語句體, 而 { } 中的代碼已經成為了和一個 if 無關的代碼塊?
int x = 20;
if (x == 10);
{
System.out.println("hehe");
} /
/ 運行結果
hehe
還有一個問題就是if / else 語句中可以不加 大括號 . 但是也可以寫語句(只能寫一條語句). 此時 else 是和最接近的 if 匹配.但是實際開發(fā)中我們 不建議 這么寫. 最好加上大括號
int x = 10;
int y = 10;
if (x == 10)
if (y == 10)
System.out.println("aaa");
else
System.out.println("bbb");
switch語句?
語法
switch(表達式){
case 常量值1:{
語句1;
[break;]
}
case 常量值2:{
語句2;
[break;]
}
……
default:{
內容都不滿足時執(zhí)行語句;
[break;]
}
}
它的過程:
1. 先計算表達式的值
2. 和case依次比較,一旦有響應的匹配就執(zhí)行該項下的語句,直到遇到break時結束
3. 當表達式的值沒有與所列項匹配時,執(zhí)行default?
舉個栗子:
int day = 1;
switch(day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("輸入有誤");
break;
}
注意:
多個case后的常量值不可以重復
switch的括號內只能是以下類型的表達式:
基本類型:byte、char、short、int,注意不能是long類型
引用類型:String常量串、枚舉類型
循環(huán)結構
while循環(huán)?
基本語法:
while(循環(huán)條件){
循環(huán)語句;
}
循環(huán)條件為 true, 則執(zhí)行循環(huán)語句; 否則結束循環(huán)?
舉個栗子:
nt num = 1;
while (num <= 10) {
System.out.println(num);
num++;
}
注意:
1. 和 if 類似, while 下面的語句可以不寫 { } , 但是不寫的時候只能支持一條語句. 建議還是加上 { }
2. 和 if 類似, while 后面的 { 建議和 while 寫在同一行.
3. 和 if 類似, while 后面不要多寫 分號, 否則可能導致循環(huán)不能正確執(zhí)行.?
int num = 1;
while (num <= 10); {
System.out.println(num);
num++;
}
這個時候 ?while 的語句體(這是一個空語句), 實際的 { } 部分和循環(huán)無關. 此時循環(huán)條件 num <= 10 恒成立, 導致代碼死循環(huán)了?
break
break 它是可以讓循環(huán)提前結束?
舉個栗子:
nt num = 100;
while (num <= 200) {
if (num % 3 == 0) {
System.out.println("找到了 3 的倍數(shù), 為:" + num);
break;
} n
um++;
}
代碼遇到了break就會跳出去,停止循環(huán)
continue
continue 的作用是跳過這次循環(huán), 立即進入下次循環(huán)?
舉個栗子:
int num = 100;
while (num <= 200) {
if (num % 3 != 0) {
num++; // 這里的 ++ 不要忘記! 否則會死循環(huán).
continue;
} System.out.println("找到了 3 的倍數(shù), 為:" + num);
num++;
}
執(zhí)行到 continue 語句的時候, 就會立刻進入下次循環(huán)從而不會執(zhí)行到下方的打印語句?
for循環(huán)
基本語法
for(表達式①;布爾表達式②;表達式③){
表達式④;
}
表達式1: 用于初始化循環(huán)變量初始值設置,在循環(huán)最開始時執(zhí)行,且只執(zhí)行一次
表達式2: 循環(huán)條件,滿則循環(huán)繼續(xù),否則循環(huán)結束
表達式3: 循環(huán)變量更新方式?
它的過程是:①②③④--->②③④--->②③④--->②③④--->②③④--->②③④--->...--->②為false,循環(huán)結束。?
舉個栗子:
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
畫圖分析
?注意:
1. 和 if 類似, for 下面的語句可以不寫 { } , 但是不寫的時候只能支持一條語句. 建議還是加上 { }
2. 和 if 類似, for 后面的 { 建議和 while 寫在同一行.
3. 和 if 類似, for 后面不要多寫 分號, 否則可能導致循環(huán)不能正確執(zhí)行.
4. 和while循環(huán)一樣,結束單趟循環(huán)用continue,結束整個循環(huán)用break?
do while循環(huán)
基本語法
do{
循環(huán)語句;
}while(循環(huán)條件);
先執(zhí)行循環(huán)語句, 再判定循環(huán)條件,循環(huán)條件成立則繼續(xù)執(zhí)行,否則循環(huán)結束。?
舉個栗子:
int num = 1;
do {
System.out.println(num);
num++;
} while (num <= 10);
注意:
1. do while 循環(huán)最后的分號不要忘記
2. 更推薦使用 for 和 while.
?
順序結構
順序結構就是按照代碼書寫的順序一行一行執(zhí)行。如果調整代碼的順序也會發(fā)生改變:
System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
// 運行結果
aaa
bbb
ccc
System.out.println("aaa");
System.out.println("ccc");
System.out.println("bbb");
// 運行結果
aaa
ccc
bbb
輸入輸出
輸出到控制臺
基本語法:
System.out.println(msg);
System.out.print(msg);// 輸出一個字符串, 帶換行
// 輸出一個字符串, 不帶換行System.out.printf(format, msg); // 格式化輸出
println 輸出的內容自帶 \n, print 不帶 \n
printf 的格式化輸出方式和 C 語言的 printf 是基本一致的.?
舉個栗子:
System.out.println("hello world");
int x = 10;
System.out.printf("x = %d\n", x)
從鍵盤輸入
使用 Scanner 讀取字符串/整數(shù)/浮點數(shù)?
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(); // 注意, 要記得調用關閉方法
// 執(zhí)行結果
請輸入你的姓名:
張三
請輸入你的年齡:
18
請輸入你的工資:
1000
你的信息如下:
姓名: 張三
年齡:18
工資:1000.0
當循環(huán)輸入多個數(shù)據的時候, 使用 ctrl + z 來結束輸入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl+ d).文章來源:http://www.zghlxwxcb.cn/news/detail-619045.html
猜數(shù)字游戲
這里通過上面的知識給大家實現(xiàn)一個猜數(shù)字游戲,這個代碼在之前的博客用C也詳細講過一遍,這里就直接上代碼了:文章來源地址http://www.zghlxwxcb.cn/news/detail-619045.html
import java.util.Random;
import java.util.Scanner;;
class Test {
public static void main(String[] args) {
Random random = new Random(); // 默認隨機種子是系統(tǒng)時間
Scanner sc = new Scanner(System.in);
int toGuess = random.nextInt(100);
// System.out.println("toGuess: " + toGuess);
while (true) {
System.out.println("請輸入要輸入的數(shù)字: (1-100)");
int num = sc.nextInt();
if (num < toGuess) {
System.out.println("猜小了");
} else if (num > toGuess) {
System.out.println("猜大了");
} else {
System.out.println("恭喜你,猜對了");
break;
}
} s
c.close();
}
}
到了這里,關于【JAVA】java中的邏輯控制的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!