欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java中邏輯控制舉例具體講解

 更新時間:2024年01月28日 10:15:56   作者:paper?jie  
Java程序邏輯控制通俗說就是對代碼執(zhí)行順序的控制,這篇文章主要給大家介紹了關于java中邏輯控制的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

前言

在前面,我們對java進行了一個簡單的概括,講解了它的數(shù)據(jù)類型和變量,操作符。這期文章我們將對java中的邏輯控制進行具體的講解,敬請期待~

分支結(jié)構(gòu)

if語句

語法格式1

if(布爾表達式){
// 語句
}

在java中,如果布爾表達式結(jié)果為true,執(zhí)行if中的語句,否則不執(zhí)行

舉個栗子:如果阿三大于90歲就是長壽,否則就不是

int age = 95;
if(age >= 90){
System.out.println("阿三活太久了吧");
}

語法格式2

if(
布爾表達式){
// 語句1
}else{
// 語句2
}

如果布爾表達式結(jié)果為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ù)據(jù) 

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ù)據(jù)");
}

注意:下面的代碼中,雖然兩種方式都是合法的, 但是 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 語句的語句體, 而 { } 中的代碼已經(jīng)成為了和一個 if 無關的代碼塊 

int x = 20;
if (x == 10);
{
System.out.println("hehe");
} /
/ 運行結(jié)果
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:{
內(nèi)容都不滿足時執(zhí)行語句;
[break;]
}
}

它的過程:

1. 先計算表達式的值

2. 和case依次比較,一旦有響應的匹配就執(zhí)行該項下的語句,直到遇到break時結(jié)束

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的括號內(nèi)只能是以下類型的表達式:

基本類型:byte、char、short、int,注意不能是long類型

引用類型:String常量串、枚舉類型

循環(huán)結(jié)構(gòu)

while循環(huán) 

基本語法:

while(循環(huán)條件){
循環(huán)語句;
}

循環(huán)條件為 true, 則執(zhí)行循環(huán)語句; 否則結(jié)束循環(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)提前結(jié)束 

舉個栗子:

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)結(jié)束
表達式3: 循環(huán)變量更新方式 

它的過程是:①②③④--->②③④--->②③④--->②③④--->②③④--->②③④--->...--->②為false,循環(huán)結(jié)束。 

舉個栗子:

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)一樣,結(jié)束單趟循環(huán)用continue,結(jié)束整個循環(huán)用break 

do while循環(huán)

基本語法

do{
循環(huán)語句;
}while(循環(huán)條件);

先執(zhí)行循環(huán)語句, 再判定循環(huán)條件,循環(huán)條件成立則繼續(xù)執(zhí)行,否則循環(huán)結(jié)束。 

舉個栗子:

int num = 1;
do {
System.out.println(num);
num++;
} while (num <= 10);

注意:

1. do while 循環(huán)最后的分號不要忘記

2. 更推薦使用 for 和 while.

順序結(jié)構(gòu)

順序結(jié)構(gòu)就是按照代碼書寫的順序一行一行執(zhí)行。如果調(diào)整代碼的順序也會發(fā)生改變:

System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
// 運行結(jié)果
aaa
bbb
ccc
System.out.println("aaa");
System.out.println("ccc");
System.out.println("bbb");
// 運行結(jié)果
aaa
ccc
bbb

輸入輸出

輸出到控制臺

基本語法:

System.out.println(msg);
System.out.print(msg);
// 輸出一個字符串, 帶換行
// 輸出一個字符串, 不帶換行

System.out.printf(format, msg); // 格式化輸出

println 輸出的內(nèi)容自帶 \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(); // 注意, 要記得調(diào)用關閉方法
// 執(zhí)行結(jié)果
請輸入你的姓名:
張三
請輸入你的年齡:
18
請輸入你的工資:
1000
你的信息如下:
姓名: 張三
年齡:18
工資:1000.0

當循環(huán)輸入多個數(shù)據(jù)的時候, 使用 ctrl + z 來結(jié)束輸入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl+ d).

猜數(shù)字游戲

這里通過上面的知識給大家實現(xiàn)一個猜數(shù)字游戲,這個代碼在之前的博客用C也詳細講過一遍,這里就直接上代碼了:

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();
}
}

附:接下來咱們用這三種循環(huán)來完成,計算10!的結(jié)果

while循環(huán)

long result = 1;
int i = 1;
while (i<=10){
    result *= i;
    i++;
}
System.out.println(result);

do……while循環(huán)

long result = 1;
int i = 1;
do {
    result *= i;
    i++;
}while (i<=10);
System.out.println(result);

for循環(huán)

long result = 1;
for (int i = 1; i <= 10; i++) {
    result*=i;
}
System.out.println(result);

以上結(jié)果均為3628800

總結(jié) 

到此這篇關于java中邏輯控制的文章就介紹到這了,更多相關java邏輯控制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java?Ribbon與openfeign區(qū)別和用法講解

    Java?Ribbon與openfeign區(qū)別和用法講解

    Ribbon是基于Netflix?Ribbon實現(xiàn)的一套客戶端負載均衡的工具,主要功能是提供客戶端的軟件負載均衡算法和服務調(diào)用。openfeign對Feign進行了增強,使其支持Spring MVC注解,另外還整合了Ribbon和Nacos,從而使得Feign的使用更加方便
    2022-08-08
  • IntelliJ IDEA優(yōu)化配置的實現(xiàn)

    IntelliJ IDEA優(yōu)化配置的實現(xiàn)

    這篇文章主要介紹了IntelliJ IDEA優(yōu)化配置的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Mybatis中Mapper標簽總結(jié)大全

    Mybatis中Mapper標簽總結(jié)大全

    這篇文章主要介紹了Mybatis中Mapper標簽總結(jié)大全,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • JDK10新特性之本地變量類型var的深入理解

    JDK10新特性之本地變量類型var的深入理解

    這篇文章主要給大家介紹了J關于DK10新特性之本地變量類型var的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用JDK10具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-05-05
  • 詳解Spring bean的注解注入之@Autowired的原理及使用

    詳解Spring bean的注解注入之@Autowired的原理及使用

    之前講過bean注入是什么,也使用了xml的配置文件進行bean注入,這也是Spring的最原始的注入方式(xml注入).本文主要講解的注解有以下幾個:@Autowired、 @Service、@Repository、@Controller 、@Component、@Bean、@Configuration、@Resource ,需要的朋友可以參考下
    2021-06-06
  • Java設計模式中的觀察者模式

    Java設計模式中的觀察者模式

    觀察者模式定義對象之間的一種一對多的依賴關系,使得每當一個對象的狀態(tài)發(fā)生變化時,其相關的依賴對象都可以得到通知并被自動更新。主要用于多個不同的對象對一個對象的某個方法會做出不同的反應
    2023-02-02
  • Java中ArrayList與順序表的概念與使用實例

    Java中ArrayList與順序表的概念與使用實例

    順序表是指用一組地址連續(xù)的存儲單元依次存儲各個元素,使得在邏輯結(jié)構(gòu)上相鄰的數(shù)據(jù)元素存儲在相鄰的物理存儲單元中的線性表,下面這篇文章主要介紹了Java?ArrayList與順序表的相關資料,需要的朋友可以參考下
    2022-01-01
  • idea導入springboot項目沒有maven的解決

    idea導入springboot項目沒有maven的解決

    這篇文章主要介紹了idea導入springboot項目沒有maven的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Mybatis-plus?代碼生成器?AutoGenerator?的簡介和使用詳解

    Mybatis-plus?代碼生成器?AutoGenerator?的簡介和使用詳解

    AutoGenerator是MyBatis-Plus的代碼生成器,通過AutoGenerator可以快速生成?Entity、Mapper、Mapper XML、Service、Controller等各個模塊的代碼,極大的提升了開發(fā)效率,這篇文章主要介紹了Mybatis-plus代碼生成器AutoGenerator的簡介和使用,需要的朋友可以參考下
    2023-05-05
  • java多線程編程之Synchronized關鍵字詳解

    java多線程編程之Synchronized關鍵字詳解

    這篇文章主要為大家詳細介紹了java多線程編程之Synchronized關鍵字,感興趣的朋友可以參考一下
    2016-05-05

最新評論