目錄
1,順序結構(最基本的結構)
2,選擇結構:
1):if單選擇結構:
2):if雙選擇結構
3):if多選擇結構
4)嵌套的if結構
3,回圈結構
1)while回圈
2)dowhile回圈
3)for回圈
4,break&continue
1)break關鍵字
2)continue關鍵字
下面我們來學習一下java中的流程控制陳述句,此內容作為演算法方面的基礎,務必認真學習,也希望各位大佬多多支持,進入自己理想的公司!!
java中的流程控制陳述句陳述句分為這些:

1,順序結構(最基本的結構)

順序結構舉例:

2,選擇結構:
1):if單選擇結構:
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("請輸入內容");
String s=scanner.nextLine();
//equals:判斷字串是否相等
if (s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
scanner.close();
}
}
在鍵盤上輸入Hello運行結果為:

而輸出其他的內容,直接輸出End,
2):if雙選擇結構
為什么要有雙選擇結構?

基本語法:
if(布爾運算式){
//如果布爾運算式的值為true
}else{
//如果布爾運算式的值為false
}
public static void main(String[] args) {
//考試分數大于60就是及格,小雨60分就不及格,
Scanner scanner=new Scanner(System.in);
System.out.println("請輸入成績:");
int score =scanner.nextInt();
if(score>60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
scanner.close();
}
}

如圖分析,及格的話流程走陳述句1,不及格的話走陳述句2
3):if多選擇結構
基本語法:
if(布爾運算式 1){
//如果布爾運算式 1的值為true執行代碼
}else if(布爾運算式 2){
//如果布爾運算式 2的值為true執行代碼
}else if(布爾運算式 3){
//如果布爾運算式 3的值為true執行代碼
}else {
//如果以上布爾運算式都不為true執行代碼
}
注意事項:
多選擇結構需要注意下面幾點:
(1)if 陳述句后面最多有 1 個 else ,else 陳述句在所有的 else if 陳述句之后,
(2)if 陳述句后面可以有很多個 else if,但它們必須在 else 陳述句之前,
(3)一旦其中一個 else if 陳述句檢測為 true,其他的 else if 以及 else 陳述句都將跳過執行,
代碼演示:
public static void main(String[] args) {
//考試分數大于60就是及格,小于60就是不及格
Scanner scanner=new Scanner(System.in);
System.out.println("請輸入成績:");
int score =scanner.nextInt();
if(score==100){
System.out.println("恭喜獲得滿分");
}else if(score<100&&score>=90){
System.out.println("A級");
}else if(score<90&&score>=80){
System.out.println("B級");
}else if(score<80&&score>=70){
System.out.println("C級");
}else if(score<70&&score>=60){
System.out.println("D級");
}else if(score<60&&score>=0){
System.out.println("不及格");
}else if(score>100){
System.out.println("成績不合法");
}
}
}
優點:利用if多選擇結構,可以包含更多的情況,讓代碼更加嚴謹,
下面我們來實際感受一下if多選擇結構!


事實證明,我們的代碼可以做到我們想做的到的需求,
4)嵌套的if結構
嵌套就是套娃,if陳述句里再套一個if陳述句唄!
基本語法:
if(布爾運算式 1){
如果布爾運算式 1的值為true執行代碼
if(布爾運算式 2){
如果布爾運算式 2的值為true執行代碼
}
}
那么嵌套的if結構又有什么好處呢?
有時候我們在解決某些問題的時候,需要縮小查找范圍,需要有層級條件判斷,提高效率
比如:我們需要尋找一個數,在1-100 之間,我們不知道這個數是多少的情況下,我們最笨的方式就是一個個去對比,看他到底是多少,這會花掉你大量的時間,如果可以利用if 嵌套比較,我們可以節省大量的成本,利用if嵌套可以不斷的縮小你所要查找的數的范圍!
如果你有這個思想,你已經很優秀了,因為很多大量的工程師就在尋找能夠快速提高,查找和搜索效率的方式,為此提出了一系列的概念,我們生活在大資料時代,我們需要不斷的去思考如何提高效率,或許哪一天,你們想出一個演算法,能夠將分析資料效率提高,或許你就可以在歷史的長河中留下一些痕跡了,
而且,所有的流程控制陳述句都可以互相嵌套,互不影響!這就爽歪歪了!
5)Switch多選擇結構
介紹:
多選擇結構還有一個實作方式就是switch case陳述句,
switch case陳述句判斷一個變數與一系列值中某個值是否相等,每個值稱為一個分支,
switch(expression){
case value : //陳述句 break; //可選
case value : //陳述句 break; //可選
//你可以有任意數量的case陳述句
default : //可選 //陳述句 }
后面注釋可選的都可以不要!
switch 陳述句中的變數型別可以是:
<1>byte,short,int或者char,
<2>從java SE7開始
<3>switch支持字串String型別了
<4>同時case 標簽(就是后面跟的東西)必須為字串常量或字面量,
代碼演示:
public static void main(String[] args) {
//case穿透
char grade ='C';
switch (grade){
case'A':
System.out.println("優秀");
break;
case'B':
System.out.println("良好");
case'C':
System.out.println("及格");
case'D':
System.out.println("再接再厲");
case'E':
System.out.println("掛科");
}
}
我們之前說過,break可以不寫,那下面我們看看不寫break會輸出什么呢?

如果不寫break會發生case穿透!
因為switch陳述句是匹配一個具體的值(跟if陳述句比起來的優點)但是如果不加break,switch陳述句就會把所匹配的case的后面的陳述句全部輸出,造成case穿透,但是這是不應該的,因此,要在每一個case陳述句后面加一個break!(if只是一個區間,而switch是一個具體的值)
所有case陳述句后都加上break之后:
public static void main(String[] args) {
char grade ='C';
switch (grade){
case'A':
System.out.println("優秀");
break;
case'B':
System.out.println("良好");
break;
case'C':
System.out.println("及格");
break;
case'D':
System.out.println("再接再厲");
break;
case'E':
System.out.println("掛科");
break;
}
}
}
輸出結果為:

因此添加break是非常重要的!
在介紹一下:
從java SE7開始
switch支持字串String型別了
下面用代碼演示一下:
public static void main(String[] args) {
String name ="躺平哥";
//JDK的新特性,運算式結果可以是字串!!!
//字符的本質還是數字
//反編譯 java--class(位元組碼檔案)--反編譯(IDEA)
switch (name){
case"小佬":
System.out.println("小佬");
break;
case"躺平哥":
System.out.println("躺平哥");
break;
default:
System.out.println("弄啥嘞!");
}
}
輸出為:躺平哥
3,回圈結構
為什么要使用回圈結構?
在上面的選擇結構中我們始終沒辦法讓程式一直跑著,我們運行一遍就停止了,他可以用scanner等待阻止,但他還是會停止,這在真實的環境中肯定是不行的!比如說淘寶阿里都是24小時運行,我們需要規定一個程式運行多少次,運行多久,因此我們需要一種結構來搞定這種事情,于是乎,回圈結構就誕生了!順序結構只能執行一次,如果你想讓相同的結構執行多次的話那么就應該使用回圈結構!!!
1)while回圈
基本語法:
while( 布爾運算式 ) {
//回圈內容
}
只要布爾運算式為 true,回圈就會一直執行下去,
在回圈剛開始時,會計算一次 “ 布爾運算式 ” 的值,若條件為真,執行回圈體,而對于后來每一次額外的回圈,都會在開始前重新計算一次判斷是否為真,直到條件不成立,則回圈結束,
我們大多數情況是會讓回圈停止下來的,我們需要一個讓運算式失效的方式來結束回圈,
代碼演示
public static void main(String[] args) {
int i = 0;
//i小于100就會一直回圈
while (i<100){
i++; System.out.println(i);
}
}
少部分情況需要回圈一直執行,比如服務器的請求回應監聽等(死回圈,平時應該避免,防止程式崩潰!)
public static void main(String[] args) {
while (true){
//等待客戶端連接
//定時檢查
//......
}
}
案例:計算1+2+3+…+100=?
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i <= 100) {
sum = sum+i; i++;
}
System.out.println("Sum= " + sum);
}
等于5050
2)dowhile回圈
對于 while 陳述句而言,如果不滿足條件,則不能進入回圈,但有時候我們需要即使不滿足條件,也至少執行一次,
do…while 回圈和 while 回圈相似,不同的是,do…while 回圈至少會執行一次,
do {
//代碼陳述句
}while(布爾運算式);
下面我們用 do...while 改造一下上面的案例!
public static void main(String[] args) {
int i = 0;
int sum = 0;
do {
sum = sum+i;
i++; }while (i <= 100);
System.out.println("Sum= " + sum);
}
執行結果當然是一樣的!
While 和 do-While 的區別:
while先判斷后執行,dowhile是先執行后判斷!
Do...while總是保證回圈體會被至少執行一次!這是他們的主要差別!!!
3)for回圈
雖然所有回圈結構都可以用 while 或者 do...while 表示,但 Java 提供了另一種陳述句 —— for 回圈,使一些回圈結構變得更加簡單,
for 回圈陳述句是支持迭代的一種通用結構,是最有效、最靈活的回圈結構,
for回圈的基本語法:
for(1,初始化,2,布爾運算式;3,更新) {
//4,代碼陳述句
}
執行順序為1,2,4,3(注意上方編號)
如果布爾運算式的值為ture,那么將執行4,代碼陳述句然后再進行迭代(加一或者減一)
如果布爾運算式為false那么將不再執行4代碼陳述句!!
【演示: while 和 for 輸出】
public static void main(String[] args) {
int a = 1; //初始化
while(a<=100){
//條件判斷
System.out.println(a);
//回圈體 a+=2;
//迭代 }
System.out.println("while回圈結束!");
for(int i = 1;i<=100;i++){
//初始化//條件判斷 //迭代
System.out.println(i);//回圈體
}
System.out.println("while回圈結束!");
}
我們發現, for 回圈在知道回圈次數的情況下,簡化了代碼,提高了可讀性,我們平時用到的最多的也是我們的for 回圈!
【練習 1 :計算 0 到 100 之間的奇數和偶數的和】
public class java1 {
public static void main(String[] args) {
int i = 0;
int j = 0;
for (int i1 = 100; i1 > 0; i1--) {
if (i1%2==0){
i += i1;
}else{
j += i1;
}
}
System.out.println("基數和"+j);
System.out.println("偶數和"+i);
【練習 2 :用 while 或 for 回圈輸出 1-1000 之間能被 5 整除的數,并且每行輸出 3 個】
public static void main(String[] args) {
for(int j = 1;j<=1000;j++){
if(j%5==0){
System.out.print(j+"\t");
}
if(j%(5*3)==0){
System.out.println();
}
}
}
【練習 3 :列印九九乘法表】
public class java1 {
public static void main(String[] args) {
for (int i = 1 ; i < 10 ;i++) {
for (int i1 = 1; i1 < i+1; i1++) {
System.out.print(i+"*"+i1+"="+i*i1+"\t");
}
System.out.println();
}
4,break&continue
1)break關鍵字
作用:
break 主要用在回圈陳述句或者 switch 陳述句中,用來跳出整個陳述句塊,
break 跳出最里層的回圈,并且繼續執行該回圈下面的陳述句,
【演示:跳出回圈】
public class java1 {
public static void main(String[] args) {
for (int i1 = 100; i1 > 0; i1--) {
if (i1==80){
break;
}else{
System.out.println(i1);
}
}
輸出結果為 86 85 84 83 82 81!!
2)continue關鍵字
continue 適用于任何回圈控制結構中,作用是讓程式立刻跳轉到下一次回圈,從頭開始繼續回圈!
在 for 回圈中, continue 陳述句使程式立即跳轉到更新陳述句,也就是說更新完繼續在從頭開始回圈!
在 while 或者 do…while 回圈中,程式立即跳轉到布爾運算式的判斷陳述句,也就是說從新開始while回圈!
public class java1 {
public static void main(String[] args) {
for (int i1 = 0; i1 < 10; i1++) {
if (i1==5){
continue;
}else{
System.out.println(i1);
}
}
輸出結果為 0 1 2 3 4 5 6 7 8 9
兩者區別
break 在任何回圈陳述句的主體部分,均可用 break 控制回圈的流程, break 用于強行退出回圈,不執行回圈中剩余的陳述句,(break 陳述句也在 switch 陳述句中使用 )
continue 陳述句用在回圈陳述句體中,用于終止某次回圈程序,即跳過回圈體中尚未執行的陳述句,接著進行下一次是否執行回圈的判定,
也就是說break直接說老娘不干了,直接從該回圈體跳走!而continue是跳出這一次回圈執行下一次回圈,可最侄訓是在回圈體的內部,沒有跳出回圈體!這就告訴我們要敢于跳出條條框框的限制才能突破自己!!break!!!!
代碼都是自己敲得,大佬們支持一下么么噠---
鳴謝【狂神說Java】Java零基礎學習視頻通俗易懂_嗶哩嗶哩_bilibili
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/395114.html
標籤:java
