1. 程式人生 > >第四天:JAVA中的迴圈語句詳解,和常用例子

第四天:JAVA中的迴圈語句詳解,和常用例子

1:switch語句(掌握)
(1)格式:
switch(表示式) {
case 值1:
語句體1;
break;
case 值2:
語句體2;
break;
...
default:
語句體n+1;
break;
}

格式解釋說明:
switch:說明這是switch語句。
表示式:可以是byte,short,int,char
JDK5以後可以是列舉
JDK7以後可以是字串
case:後面的值就是要和表示式進行比較的值
break:表示程式到這裡中斷,跳出switch語句
default:如果所有的情況都不匹配,就執行這裡,相當於if語句中的else
(2)面試題
switch語句的表示式可以是byte嗎?可以是long嗎?可以是String嗎?
可以,不可以,JDK7以後可以
(3)執行流程:
A:首先計算表示式的值
B:和每一個case進行匹配,如果有就執行對應的語句體,看到break就結束。
C:如果沒有匹配,就執行default的語句體n+1。
(4)注意事項:

A:case後面只能是常量,不能是變數,而且,多個case後面的值不能出現相同的
B:default可以省略嗎?
可以省略,但是不建議,因為它的作用是對不正確的情況給出提示。
特殊情況:
case就可以把值固定。
A,B,C,D
C:break可以省略嗎?
可以省略,但是結果可能不是我們想要的。
會出現一個現象:case穿透。
最終我們建議不要省略
D:default一定要在最後嗎?
不是,可以在任意位 置。但是建議在最後。
E:switch語句的結束條件
a:遇到break就結束了
b:執行到末尾就結束了
(5)案例:
A:鍵盤錄入一個數字(1-7),輸出對應的星期幾。
B:單項選擇題
C:鍵盤錄入一個字串的問題
String s = sc.nextLine();
D:根據給定的月份,輸出對應的季節
(6)if語句和switch語句各自的場景
A:if
針對boolean型別的判斷
針對一個範圍的判斷
針對幾個常量的判斷
B:switch
針對幾個常量的判斷


2:迴圈語句(掌握)
(1)有三種:for,while,do...while
(2)for迴圈語句
A:格式
for(初始化語句;判斷條件語句;控制條件語句){
迴圈體語句;
}

執行流程:
a:執行初始化語句
b:執行判斷條件語句
如果這裡是true,就繼續
如果這裡是false,迴圈就結束
c:執行迴圈體語句
d:執行控制條件語句
e:回到b
B:注意事項
a:判斷條件語句無論簡單還是複雜,結果是boolean型別
b:迴圈體語句如果是一條,可以省略大括號,但是不建議
c:有分號就沒有左大括號,有左大括號就沒有分號
C:案例
a:輸出10次HelloWorld
b:輸出1-10的資料
c:輸出10-1的資料
d:求1-10的和
e:求1-100的和,求1-100的偶數和,求1-100的奇數和
f:求5的階乘
g:在控制檯列印水仙花數
h:統計水仙花個數
i:改進版的迴文數
一個五位數
個位 = 萬位
十位 = 千位
個位 + 十位 + 千位 + 萬位 = 百位
j:統計1-1000之間同時滿足如下條件的資料有多少個
x%3==2
x%5==3
x%7==2
(3)while迴圈
A:基本格式
while(判斷條件語句) {
迴圈體語句;
}

擴充套件格式:
初始化語句;
while(判斷條件語句){
迴圈體語句;
控制條件語句;
}

通過檢視這個格式,我們就知道while迴圈可以和for迴圈等價轉換。
B:while的練習
把for語句的練習用while改進
C:for和while的區別
a:使用上的區別
for語句的那個控制條件變數,在迴圈結束後不能在使用了。
而while的可以繼續使用。
b:理解上的區別
for適合於一個範圍的判斷
while適合次數不明確的
舉例:吃葡萄
D:案例:
a:珠穆朗瑪峰問題
b:小芳存錢問題(break以後才能做)
(4)do...while迴圈
A:基本格式
do {
迴圈體語句;
}while(判斷條件語句);

擴充套件格式:
初始化語句;
do {
迴圈體語句;
控制條件語句;
}while(判斷條件語句);

通過檢視格式,我們就可以看出其實三種迴圈的格式可以是統一的。
B:三種迴圈的區別
a:do...while迴圈至少執行一次迴圈體
b:for和while必須先判斷條件是否是true,然後後才能決定是否執行迴圈體
(5)迴圈使用的注意事項(死迴圈)
A:一定要注意修改控制條件,否則容易出現死迴圈。
B:最簡單的死迴圈格式
a:while(true){...}

b:for(;;){}

3:控制跳轉語句(掌握)
(1)break:中斷的意思
A:用在迴圈和switch語句中,離開此應用場景無意義。
B:作用
a:跳出單層迴圈
b:跳出多層迴圈,需要標籤語句的配合
(2)continue:繼續
A:用在迴圈中,離開此應用場景無意義。
B:作用
a:跳出單層迴圈的一次,可以繼續下一次
C:填空題
for(int x=1; x<=10; x++) {
if(x%3 == 0) {
//補齊程式碼
}
System.out.println("Java基礎班");
}
如何讓控制檯輸出2次:Java基礎班
如何讓控制檯輸出7次:Java基礎班
如何讓控制檯輸出13次:Java基礎班
(3)return:返回
A:用於結束方法的,後面還會在繼續講解和使用。
B:一旦遇到return,程式就不會在繼續往後執行。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/*
需求:請輸出下列的形狀
*
**
***
****
*****
*/
class ForForDemo2 {
public static void main(String[] args) {
//通過簡單的觀察,我們看到這是一個行是5,列數是變化的形狀
//我們先打印出一個5行5列的形狀
for(int x=0; x<5; x++) {
for(int y=0; y<5; y++) {
System.out.print("*");
}
System.out.println();
}

System.out.println("--------------");

//我們實現了一個5行5列的形狀
//但是這不是我們想要的
//我們要的是列數變化的
//列數是如何變化的呢?
//第一行:1列 y=0,y<=0,y++
//第二行:2列 y=0,y<=1,y++
//第三行:3列 y=0,y<=2,y++
//第四行:4列 y=0,y<=3,y++
//第五行:5列 y=0,y<=4,y++
//在看外迴圈x的變化,恰好就是x=0,1,2,3,4
//所以這個最終版的程式就是如下
for(int x=0; x<5; x++) {
for(int y=0; y<=x; y++) {
System.out.print("*");
}
System.out.println();
}
}

相關推薦

JAVA迴圈語句常用例子

1:switch語句(掌握)(1)格式:switch(表示式) {case 值1:語句體1;break;case 值2:語句體2;break;...default:語句體n+1;break;}格式解釋說明:switch:說明這是switch語句。表示式:可以是byte,short,int,charJDK5以後

java高併發系列 - 22java底層工具類Unsafe高手必須要了

這是java高併發系列第22篇文章,文章基於jdk1.8環境。 本文主要內容 基本介紹 通過反射獲取Unsafe例項 Unsafe中的CAS操作 Unsafe中原子操作相關方法介紹 Unsafe中執行緒排程相關方法 park和unpark示例 Unsafe鎖示例 Unsafe中保證變數的可見性 Unsafe

Java的構造方法

1.使用new+構造方法 建立新的物件 2.構造方法是定義在java類中的一個用來初始化物件的方法 構造方法與類同名且沒有返回值 靜態變數應使用 static 關鍵字修飾 可以通過 “類名.靜態變數” 訪問靜態變數 如:HelloWorld.classNa

java高併發系列 - 14JUC的LockSupport工具類必備技能

這是java高併發系列第14篇文章。 本文主要內容: 講解3種讓執行緒等待和喚醒的方法,每種方法配合具體的示例 介紹LockSupport主要用法 對比3種方式,瞭解他們之間的區別 LockSupport位於java.util.concurrent(簡稱juc)包中,算是juc中一個基礎類,juc中很多地

java高併發系列 - 21java的CAS操作java併發的基石

這是java高併發系列第21篇文章。 本文主要內容 從網站計數器實現中一步步引出CAS操作 介紹java中的CAS及CAS可能存在的問題 悲觀鎖和樂觀鎖的一些介紹及資料庫樂觀鎖的一個常見示例 使用java中的原子操作實現網站計數器功能 我們需要解決的問題 需求:我們開發了一個網站,需要對訪問量進行統計,使

89HTML5 訪問歷史、全屏網頁存儲API

全屏顯示 cal img 一份 圖片 def api load replace 一、訪問歷史 API 通過history對象實現前進、後退和刷新之類的操作 history新增的兩個方法history.replaceState()和history.pushState()方法屬

scrapy爬蟲框架(scrapy yield使用

開始前的準備工作: MySQL下載:點我 python MySQL驅動下載:pymysql(pyMySql,直接用pip方式安裝) 全部安裝好之後,我們來熟悉一下pymysql模組 import pymysql #建立連結物件 connection = pymysql

Java基礎六JavaVolatile關鍵字

一、基本概念 先補充一下概念:Java 記憶體模型中的可見性、原子性和有序性。 可見性: 可見性是一種複雜的屬性,因為可見性中的錯誤總是會違揹我們的直覺。通常,我們無法確保執行讀操作的執行緒能適時地看到其他執行緒寫入的值,有時甚至是根本不可能的事情。為了確保多個

原始碼閱讀JAVA的CAS

     本篇的思路是先闡明無鎖執行者CAS的核心演算法原理然後分析Java執行CAS的實踐者Unsafe類,該類中的方法都是native修飾的,因此我們會以說明方法作用為主介紹Unsafe類,最後再介紹併發包中的Atomic系統使用CAS原理實現的併發類。

初步學習Django-views.PY文件

string 服務器端 Language 文件名 lse 移除 情況 rri 主機名 http請求中產生的兩個核心對象: http請求:HttpRequesthttp響應:HttpResponse 所在位置:from django.http import HttpRequ

Mysql高手系列 - 18篇mysql流程控制語句(高手進階)

Mysql系列的目標是:通過這個系列從入門到全面掌握一個高階開發所需要的全部技能。 這是Mysql系列第18篇。 環境:mysql5.7.25,cmd命令中進行演示。 程式碼中被[]包含的表示可選,|符號分開的表示可選其一。 上一篇儲存過程&自定義函式,對儲存過程和自定義函式做了一個簡單的介紹,但是如

Java的集合結合 ArrayList、HashSet 的區別以及HashCode的作用。

Java中的集合:      (1)Collection                           List(有序,可重複)             ArrayList         

javaArrayList用法基本用法(含增刪改查)

1、什麼是ArrayList ArrayList就是動態陣列,它提供了①動態的增加和減少元素 ②實現了ICollection和IList介面 ③靈活的設定陣列的大小ArrayList是一個其容量能夠動態增長的動態陣列。它繼承了AbstractList,實現了List、Rand

java高併發系列 - 17JUC迴圈柵欄CyclicBarrier常見的6種使用場景及程式碼示例

這是java高併發系列第17篇。 本文主要內容: 介紹CyclicBarrier 6個示例介紹CyclicBarrier的使用 對比CyclicBarrier和CountDownLatch CyclicBarrier簡介 CyclicBarrier通常稱為迴圈屏障。它和CountDownLatch很相似,

python判斷語句循環語句

python一、判斷語句<1>開發中的判斷場景密碼判斷重要日期判斷 if 今天是周六或者周日: 約妹子 if 今天是情人節: 買玫瑰 if 今天發工資: 先還信用卡的錢 if 有剩余:

C#程式設計基礎c#的邏輯運算子、多重if語句、巢狀if語句的使用

知識點:邏輯運算子、多重if語句、巢狀if語句 1、邏輯運算子 練習1:邏輯或、邏輯與運算子的使用 本次計算機考試成績規定:筆試成績等於100分且機試成績大於等於60分,或筆試成績大於等於60分且機試成績等於100分,     輸出“成績優秀”,&

java高併發系列 - 15JUC的Semaphore最簡單的限流工具類必備技能

這是java高併發系列第15篇文章 Semaphore(訊號量)為多執行緒協作提供了更為強大的控制方法,前面的文章中我們學了synchronized和重入鎖ReentrantLock,這2種鎖一次都只能允許一個執行緒訪問一個資源,而訊號量可以控制有多少個執行緒可以同時訪問特定的資源。 Semaphore常用

java高併發系列 - 16JUC等待多執行緒完成的工具類CountDownLatch必備技能

這是java高併發系列第16篇文章。 本篇內容 介紹CountDownLatch及使用場景 提供幾個示例介紹CountDownLatch的使用 手寫一個並行處理任務的工具類 假如有這樣一個需求,當我們需要解析一個Excel裡多個sheet的資料時,可以考慮使用多執行緒,每個執行緒解析一個sheet裡的資料

java高併發系列 - 23JUC原子類一篇就夠了

這是java高併發系列第23篇文章,環境:jdk1.8。 本文主要內容 JUC中的原子類介紹 介紹基本型別原子類 介紹陣列型別原子類 介紹引用型別原子類 介紹物件屬性修改相關原子類 預備知識 JUC中的原子類都是都是依靠volatile、CAS、Unsafe類配合來實現的,需要了解的請移步: volati

HTTP&Tomcat

tomcat一、HTTP協議1、HTTP協議的概述<1>什麽是HTTP協議HTTP協議:超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網絡協議。用於定義WEB瀏覽器與WEB服務器之間交換數據的過程<2>HTTP協議的作用及