日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 流程控制篇 2021/02/26持续更新中

發布時間:2024/7/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 流程控制篇 2021/02/26持续更新中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 用戶交互Scanner

1.1 簡單的Scanner用法

  • 首先,需要 import java.util.Scanner
  • 其次,需要創建一個 Scanner 類的對象, Scanner s = new Scanner(System.in);
  • 通過調用Scanner對象的方法來完成,
  • 一定要注意有開有關,最后要調用方法 close()
方法名稱搭配方法用途
boolean hasNext()String next()一個用于查看是否有下一個輸入,一個用于接收,空格視為結束
boolean hasNextLine()String nextLine()一個用于查看是否有下一個輸入,一個用于接收,換行視為結束
  • haveNext(), next() 方法的嘗試
  • package com.luckylight.package3;import java.util.Scanner;public class Demo1 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("使用next方式接收:");// next 相當于 scanfif (scan.hasNext()) {String str = scan.next();System.out.println(str);}// 注意有開有關scan.close();} }
  • haveNextLine(), nextLine()方法的嘗試
  • package com.luckylight.package3;import java.util.Scanner;public class Demo1 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("使用nextline方式接收:");// nextLine 相當于 getsif (scan.hasNextLine()) {String str = scan.nextLine();System.out.println(str);}// 注意有開有關scan.close();} }
  • next()與nextLine()細節方面的介紹
  • next() – 類似于 c++中的scanf
  • 必須要讀到有效字符才算結束
  • 有效字符前的空白,next()方法將其自動去除
  • 得不到帶有空格的字符串
  • nextLine() 類似于 c++中的 getline(cin, str);(String str) || cin.getline(buf, sizeof (buf));–>(char buf[N])
  • 以 Enter 作為結束符
  • 可以獲得空白
  • 1.2 Scanner 的進一步

    • 之前Scanner 的部分僅僅是返回了 字符串 String類型,也可以進行 int, float, double 的類型,使用方法如下所示:
    • 注意這個 has___這個東西是可以進行隱式轉換的,也就是說double 可以接受 int
    • 而且注意,has這個僅是判斷,并不接受內容,只有next,他的光標才會往后移動
    • 而且也不能超出范圍,否則has__是會返回false 的
    方法名稱配套方法作用
    hasNextInt()nextInt()整數int
    hasNextLong()nextLong()整數long
    hasNextFloat()nextFloat()浮點數float
    hasNextDouble()nextDouble()浮點數double
    package com.luckylight.package3;import java.util.Scanner;public class demo2 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int i = 0;float x = 0.0f;// 整數if (scanner.hasNextInt()) {i = scanner.nextInt();System.out.println("你輸入的一個整數是:" + i);} else {System.out.println("你沒有輸入一個整數");}// 浮點數,這個是可以接受整數的if (scanner.hasNextFloat()) {x = scanner.nextFloat();System.out.println("你輸入的一個浮點數float=" + x);} else {System.out.println("你沒有輸入一個浮點數");}scanner.close();} }

    求輸入整數數字的和以及平均值

    package com.luckylight.package3;import java.util.Scanner;public class demo2 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = 0;double sum = 0.0;while (scanner.hasNextLong()){long tmp;n ++;tmp = scanner.nextLong();sum += tmp;System.out.println("當前你輸入的數據是=" + tmp + ", 當前的tmp和為" + sum);}System.out.println("最終的總和為" + sum +", 平均值為 " + sum / n);scanner.close();} }

    1.3 print 與 printLine()

    都是java 輸出語句

    System.out.print(), System.out.printLine()

    一個是輸出完不換行,print, 一個是輸出完會換行, println

    2. 順序結構 & 選擇結構 & 循環結構

    2.1 順序結構

    直接就是順序執行,沒啥好說的,最基礎的程序執行結構,在這里補充一個 小常識。

    ==與equals的區別

  • "=="操作符的作用

    1、用于基本數據類型的比較

    2、判斷引用是否指向堆內存的同一塊地址。

  • equals的作用:

  • 用于判斷兩個變量是否是對同一個對象的引用,即堆中的內容是否相同,返回值為布爾類型

  • 用法:boolean b = obj1.equals(obj2);

  • == 與 equals 的區別

    String作為一個對象來使用,查看他們的區別。

    eg1: 對象不同,內容相同

    String s1 = new String("java"); String s2 = new String("java");System.out.println(s1==s2); //false System.out.println(s1.equals(s2)); //true

    eg2:同一對象,"=="和equals結果相同

    String s1 = new String("java"); String s2 = s1;System.out.println(s1==s2); //true System.out.println(s1.equals(s2)); //true

    String作為一個基本類型來使用

    如果值不相同,對象就不相同,所以"==" 和equals結果一樣

    String s1 = "java"; String s2 = "java";System.out.println(s1==s2); //true System.out.println(s1.equals(s2)); //true
  • 綜上所述,還是使用equals判斷穩妥!!!

    2.2 選擇結構

    2.2.1 if 類型

  • if (condition) —

  • if (condition) — else —

  • if (condition1) — else if (conditon2) ------- else —

  • if 還可以進行嵌套

  • 2.2.2 switch 類型

    • 具體的類型如下示例所示
    switch (expression) {case value1 :sentence_1;break;case value2 :sentence_2;break;......default :sentence_n;break; }
    • 其中的 break, default 都是可選的,一定要注意 有無的區別
    • expression 變量可以使 byte, short, int , 或者是char
    • 從 Java SE 7 開始, switch 就可以支持 String 類型了。
    • case 后面必須跟的是常量表達式,不可以是變量

    下面我們寫一個switch文件試一試 String 類型,然后介紹IDEA的反編譯

  • 首先我們查看IDEA經過 javac生成的文件放在文件哪個位置
  • 進入 class 文件路徑,將其添加到 idea 的當前工作區域(不可以直接通過 IDEA 加入,但是可以通過文件夾手動加入)
  • 加入后顯示如下(倘若加入后還沒有,直接 右鍵 reload from disk 該文件夾即可)

  • 最后雙擊該文件打開即可,查看反編譯后的文件,發現這個String的Switch原來是使用了 hash 操作。
  • 2.3 循環結構

    2.3.1 while, do~while, for

    **while, do – while, for **

    while (booleanExpression) {// 循環體}do {// 循環體} while (booleanExpression);for (初始化; booleanExpression; 更新迭代) {// 循環體}

    練習一個打印九九乘法表格

    注意這個是雙引號,不是單引號

    for 版本

    for (int i = 1; i <= 9; i ++ ) {for (int j = 1; j <= i; j ++ ) {System.out.printf("%-2d*%2d = %2d,\t", j, i, i * j);}System.out.println();}// 這個是雙引號for (int i = 1; i <= 9; i ++ ) {for (int j = 1; j <= i; j ++ ) {System.out.print(j+"*"+i+"="+(i*j)+"\t");}System.out.println();}

    while 版本

    int i = 1, j = 1;while (i <= 9) {j = 1;while (j <= i) {System.out.printf("%d * %d = %2d,\t", j, i, i * j);j ++;}i ++;System.out.println();}

    2.3.2 增強的for循環

    • Java5引入的一種用于數組或者是集合的增強型for循環, 這個東西好像和 c ++ 那個一樣 for (auto x : v){} // 遍歷vector數組
    for (聲明語句 : 表達式) {// 代碼 }

    測試樣例

    int[] numbers = {10, 20, 30, 35};for (int x : numbers)System.out.println(x);

    3. Break & Continue

    不帶標簽的 label 和 continue 是和 c ++ 一模一樣的

    帶標簽的 label 和 continue 奇奇怪怪,不建議使用。

    public class MultTable {public static void main(String[] args) {label1 : for (int i = 1; i <= 20; i ++ ) {if ((i & 1) == 1) {// continue label1;break label1;}System.out.println(i);}} }

    4. 練習&debug

    打印一個三角形

    package com.luckylight.package3;/*** @author LuckyLight* @since 8.0* @*/ public class MultTable {public static void main(String[] args) {// 打印一個 n 行的三角形int n = 5;int sumLine = n * 2 - 1;System.out.println(n);System.out.println(sumLine);for (int i = 1; i <= n; i ++ ) {int curCnt = i * 2 - 1;int left = (sumLine - curCnt) / 2;for (int j = 1; j <= sumLine; j ++ ) {if (j <= left || j >= sumLine - left + 1 ) {System.out.print(' ');} else {System.out.print('*');}}System.out.println();}} }

    IDEA 的debug功能超級好用,建議多多嘗試

    總結

    以上是生活随笔為你收集整理的java 流程控制篇 2021/02/26持续更新中的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日本东京热一区二区三区 | 国产福利在线观看视频 | 97福利社 | 伊人网狼人 | 黄色一几片 | 成年人精品视频 | 亚洲国产一区二区三区 | 亚洲成人精品一区二区三区 | 正在播放超嫩在线播放 | 国产一区精品久久 | 中文在线√天堂 | 香蕉久久一区二区三区 | 久久精品第一页 | 国产欧美一区二区三区在线老狼 | www.浪潮av.com | 欧美日韩精品综合 | 少妇毛片视频 | 成年在线观看视频 | 蜜桃精品久久久久久久免费影院 | 永久免费视频网站 | 久久婷婷色综合 | 日本久久成人 | 黄片毛片在线免费观看 | 精品自拍一区 | 亚洲一区二区不卡视频 | 久久福利电影 | 蜜臀av一区二区三区激情综合 | 人妻一区二区三区四区 | 国产精品一区二区人妻喷水 | 欧美成人午夜精品久久久 | 亚洲精品喷潮一区二区三区 | 精品产国自在拍 | 红桃视频隐藏入口 | 成人小视频在线观看 | 污污污污污污www网站免费 | 好吊视频一区二区三区 | 99久久国 | 免费人成又黄又爽又色 | 日韩视频一区二区 | 8x8ⅹ国产精品一区二区二区 | 美女无遮挡免费网站 | 久久国内 | 日韩成人av网 | 越南少妇做受xxx片 亚洲av综合色区无码一二三区 | 中文字幕 欧美日韩 | 久久精品操 | 久久久久久999| 国产尤物av尤物在线看 | 精品一区二区三区免费毛片 | 情涩快播 | 日韩黄色大全 | 欧美专区在线观看 | 成人激情文学 | 国产第一页在线播放 | 粉嫩精品久久99综合一区 | 搡老熟女老女人一区二区 | 奇米网久久 | 在线免费日韩av | 国产奶头好大揉着好爽视频 | 中文字幕人妻一区二区三区在线视频 | 91一区二区在线 | 网站av在线 | 日韩精品三级 | 欧美激情欧美激情在线五月 | 一区二区乱子伦在线播放 | 成人黄色短片 | 一本色道久久hezyo加勒比 | 蜜臀av性久久久久av蜜臀妖精 | 日韩精品第二页 | 一级片在线| 女人被狂躁60分钟视频 | 国产在线看片 | 在线天堂www在线国语对白 | xxx毛片| 一级特黄色片 | 91插插插插插插插插 | 国产无码精品合集 | 国产精品tv| 亚洲三级伦理 | 久久99国产精品久久99 | 青春草网站 | 波多野结衣一区二区三区在线 | 岛国片在线播放 | 天堂一级片 | 欧美一级二级片 | 91成人一区二区三区 | 欧美巨鞭大战丰满少妇 | 欧美国产日本在线 | 爽爽视频在线观看 | 免费小视频 | 欧美做受高潮动漫 | 精品久久人妻av中文字幕 | 台湾佬中文在线 | 美女高潮黄又色高清视频免费 | 麻豆传媒网站在线观看 | 欧美激情一区二区 | 国产剧情一区二区三区 | 另类尿喷潮videofree | 男人的天堂色 |