最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java之邏輯控制三大結構使用及說明

 更新時間:2025年12月26日 09:31:34   作者:月下清融析愿  
文章介紹了Java中的邏輯控制結構,包括順序執(zhí)行、選擇執(zhí)行(if和switch語句)和循環(huán)執(zhí)行(while、for和do-while循環(huán)),此外,還討論了輸入輸出和一個簡單的猜數字游戲

邏輯控制分為三部分,分別為順序執(zhí)行,選擇執(zhí)行以及循環(huán)執(zhí)行

一、順序執(zhí)行(順序結構)

即順序執(zhí)行代碼,這部分沒有什么特別要說的就簡單概括一下

順序執(zhí)行是java中的默認執(zhí)行程序,有代碼編寫順序決定執(zhí)行流程,說人話就是從上到下,從左到右依次按順序運行(沒有特殊控制結構的前提下)

那么,何為特殊控制結構呢?

特殊控制結構有分支,循環(huán),線程等,接下來我會詳細分析這些

二、選擇執(zhí)行 (分支結構)    if    switch

1.if 語句

語法格式1

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

語法格式2

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

語法格式3

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

2.練習

1.判斷一個數字是奇數還是偶數

int num = 10;
if (num % 2 == 0) {
System.out.println("num 是偶數");
} else {
System.out.println("num 是奇數");
}

2.判斷一個數字是正數,負數,還是零

int num = 10;
if (num > 0) {
System.out.println("正數");
} else if (num < 0) {
System.out.println("負數");
} else {
System.out.println("0");
}

3.判斷一個年份是否為閏年

int year = 2000;
if (year % 100 == 0) {
// 判定世紀閏年
if (year % 400 == 0) {
System.out.println("是閏年");
} else {
System.out.println("不是閏年");
}
} else {
// 普通閏年
if (year % 4 == 0) {
System.out.println("是閏年");
} else {
System.out.println("不是閏年");
}
}

3.switch 語句

執(zhí)行流程:

1. 先計算表達式的值

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

3. 當表達式的值沒有與所列項匹配時,執(zhí)行default

【注意事項】

多個case后的常量值不可以重復

switch的括號內只能是以下類型的表達式:

  • 基本類型:byte、char、short、int,注意不能是long類型
  • 引用類型:String常量串、枚舉類型

switch 雖然支持嵌套, 但是很丑,一般不推薦~

三、循環(huán)執(zhí)行  (循環(huán)結構)  while  for   do while

1.while 循環(huán)

基本語法格式:

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

循環(huán)條件為 true, 則執(zhí)行循環(huán)語句; 否則結束循環(huán)

代碼示例:計算 1! + 2! + 3! + 4! + 5!

int num = 1;
int sum = 0;
// 外層循環(huán)負責求階乘的和
while (num <= 5) {
int factorResult = 1;
int tmp = 1;
// 里層循環(huán)負責完成求階乘的細節(jié).
while (tmp <= num) {
factorResult *= tmp;
tmp++;
}
sum += factorResult;
num++;
}
System.out.println("sum = " + sum);

注意事項

1. 和 if 類似, while 下面的語句可以不寫 { } , 但是不寫的時候只能支持一條語句. 建議還是加上 { }

2. 和 if 類似, while 后面的 { 建議和 while 寫在同一行.

3. 和 if 類似, while 后面不要多寫 分號, 否則可能導致循環(huán)不能正確執(zhí)行.

2.break

能讓循環(huán)提前結束

代碼示例: 找到 100 - 200 中第一個 3 的倍數

int num = 100;
while (num <= 200) {
if (num % 3 == 0) {
System.out.println("找到了 3 的倍數, 為:" + num);
break;
}
num++;
}
// 執(zhí)行結果
找到了 3 的倍數, 為:102

執(zhí)行到break就會讓循環(huán)結束

3.continue

可以跳過此次循環(huán)立即進入下一循環(huán)

代碼示例: 找到 100 - 200 中所有 3 的倍數

int num = 100;
while (num <= 200) {
if (num % 3 != 0) {
num++; // 這里的 ++ 不要忘記! 否則會死循環(huán).
continue;
}
System.out.println("找到了 3 的倍數, 為:" + num);
num++;
}

執(zhí)行到 continue 語句的時候, 就會立刻進入下次循環(huán)(判定循環(huán)條件), 從而不會執(zhí)行到下方的打印語句.

4.for 循環(huán)

【注意事項】 (和while循環(huán)類似)

1. 和 if 類似, for 下面的語句可以不寫 { } , 但是不寫的時候只能支持一條語句. 建議還是加上 { }

2. 和 if 類似, for 后面的 { 建議和 while 寫在同一行.

3. 和 if 類似, for 后面不要多寫 分號, 否則可能導致循環(huán)不能正確執(zhí)行.

4. 和while循環(huán)一樣,結束單趟循環(huán)用continue,結束整個循環(huán)用break

5.do while 循環(huán)

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

【注意事項】

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

2. 一般 do while 很少用到, 更推薦使用 for 和 while.

四、輸入輸出

基本語法

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

1,println 輸出的內容自帶 \n, print 不帶 \n

2,printf 的格式化輸出方式和 C 語言的 printf 是基本一致的

這個表格沒必要記住, 用到的時候根據需要查一下就行了

五、從鍵盤輸入

使用 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(); // 注意, 要記得調用關閉方法
// 執(zhí)行結果
請輸入你的姓名:
張三
請輸入你的年齡:
18
請輸入你的工資:
1000
你的信息如下:
姓名: 張三
年齡:18
工資:1000.0

使用 Scanner 循環(huán)讀取 N 個數字,并求取其平均值

Scanner sc = new Scanner(System.in);
int sum = 0;
int num = 0;
while (sc.hasNextInt()) {
int tmp = sc.nextInt();
sum += tmp;
num++;
}
System.out.println("sum = " + sum);
System.out.println("avg = " + sum / num);
sc.close();
// 執(zhí)行結果
10
40.0
50.5
^Z
sum = 150.5
avg = 30.1

注意事項

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

六、猜數字游戲

要求:

系統(tǒng)自動生成一個隨機整數(1-100), 然后由用戶輸入一個猜測的數字. 如果輸入的數字比該隨機數小, 提示 "低了", 如果輸入的數字比該隨機數大, 提示 "高了" , 如果輸入的數字和隨機數相等, 則提示 "猜對了

?
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("請輸入要輸入的數字: (1-100)");
int num = sc.nextInt();
if (num < toGuess) {
System.out.println("低了");
} else if (num > toGuess) {
System.out.println("高了");
} else {
System.out.println("猜對了");
break;
}
}
sc.close();
}
}?

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot中application.properties與application.yml區(qū)別小結

    SpringBoot中application.properties與application.yml區(qū)別小結

    本文主要介紹了SpringBoot中application.properties與application.yml區(qū)別小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-10-10
  • Spring中使用自定義ThreadLocal存儲導致的坑及解決

    Spring中使用自定義ThreadLocal存儲導致的坑及解決

    這篇文章主要介紹了Spring中使用自定義ThreadLocal存儲導致的坑及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java Web編程之Servlet技術詳解

    Java Web編程之Servlet技術詳解

    這篇文章主要為大家詳細介紹了Java Web編程之Servlet技術,Servlet就是一種實現了Servlet接口的類,它由Web容器(Tomcat/Jetty等)負責調用并創(chuàng)建,用于接收和響應用戶請求,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Java中throw和throws異常處理完整例子說明

    Java中throw和throws異常處理完整例子說明

    這篇文章主要給大家介紹了關于Java中throw和throws異常處理的相關資料, throw關鍵字是用于在方法內拋出異常,而throws關鍵字是在方法聲明中指定可能拋出的異常,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-06-06
  • Springboot集成Actuator監(jiān)控功能詳解

    Springboot集成Actuator監(jiān)控功能詳解

    這篇文章主要介紹了Springboot集成Actuator監(jiān)控功能詳解,有時候我們想要實時監(jiān)控我們的應用程序的運行狀態(tài),比如實時顯示一些指標數據,觀察每時每刻訪問的流量,或者是我們數據庫的訪問狀態(tài)等等,這時候就需要Actuator了,需要的朋友可以參考下
    2023-09-09
  • idea jar包沖突的排查過程

    idea jar包沖突的排查過程

    文章介紹了如何使用MavenHelper插件快速定位Java項目中的jar包沖突,傳統(tǒng)方法使用IDEA的Diagrams插件,但MavenHelper提供了更直觀的沖突展示和便捷的排除選項,使用方法包括安裝插件、分析依賴、查看和處理沖突
    2025-10-10
  • Java反射的應用之動態(tài)代理深入理解

    Java反射的應用之動態(tài)代理深入理解

    這篇文章主要介紹了Java反射的應用之動態(tài)代理深入理解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 淺談Java中SimpleDateFormat 多線程不安全原因

    淺談Java中SimpleDateFormat 多線程不安全原因

    SimpleDateFormat是Java中用于日期時間格式化的一個類,本文主要介紹了淺談Java中SimpleDateFormat 多線程不安全原因,感興趣的可以了解一下
    2024-01-01
  • Java超詳細整理講解各種排序

    Java超詳細整理講解各種排序

    這篇文章主要介紹了Java常用的排序算法及代碼實現,在Java開發(fā)中,對排序的應用需要熟練的掌握,這樣才能夠確保Java學習時候能夠有扎實的基礎能力。那Java有哪些排序算法呢?本文小編就來詳細說說Java常見的排序算法,需要的朋友可以參考一下
    2022-07-07
  • Java?超詳細講解設計模式之中的建造者模式

    Java?超詳細講解設計模式之中的建造者模式

    建造者模式,是一種對象構建模式 它可以將復雜對象的建造過程抽象出來,使這個抽象過程的不同實現方法可以構造出不同表現的對象。本文將通過示例講解建造者模式,需要的可以參考一下
    2022-03-03

最新評論

祁东县| 金平| 秦皇岛市| 新化县| 万源市| 阿勒泰市| 梓潼县| 砚山县| 华坪县| 广河县| 濉溪县| 昌宁县| 临桂县| 黄浦区| 牡丹江市| 会东县| 申扎县| 镇宁| 临桂县| 芮城县| 嘉义市| 香港 | 宿州市| 健康| 东海县| 寿宁县| 三亚市| 鹤壁市| 乾安县| 宁河县| 博乐市| 南漳县| 科技| 涿州市| 台南市| 深圳市| 建湖县| 将乐县| 南澳县| 岳池县| 庄河市|