久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > java中for循環(huán)語句的用法

java中for循環(huán)語句的用法

來源:千鋒教育
發(fā)布人:qyf
時(shí)間: 2023-03-21 17:31:00 1679391060

  1.語法

  for循環(huán)的基本語法如下:

  for(①.聲明并初始化循環(huán)變量;②.判斷循環(huán)條件;④.改變循環(huán)變量值){

  //③.循環(huán)體

  }

  語法說明:

  1.for循環(huán)最先執(zhí)行初始化步驟。在這里可以聲明一種類型,但可以初始化一個(gè)或多個(gè)循環(huán)控制變量,也可以是空語句;

  2.判斷循環(huán)條件,檢測布爾表達(dá)式的值。如果為 true,循環(huán)體被執(zhí)行。如果為false,循環(huán)終止,開始執(zhí)行循環(huán)體后面的語句。且for循環(huán)的執(zhí)行次數(shù)在執(zhí)行前就已經(jīng)是確定的。

  3.執(zhí)行一次循環(huán)后,就會(huì)更新一次循環(huán)控制變量的值;

  4.再次檢測布爾表達(dá)式,循環(huán)執(zhí)行上面的過程。

  2. 執(zhí)行流程

  根據(jù)上面的for循環(huán)語法,壹哥把for循環(huán)的執(zhí)行流程給大家做個(gè)詳細(xì)的解釋:

  1.首先我們要在第①步聲明并初始化一個(gè)變量,該操作在循環(huán)中只會(huì)執(zhí)行一次;

  2.每次循環(huán)之前,在第②步判斷循環(huán)條件是否成立,只有當(dāng)條件為true才會(huì)執(zhí)行,如果條件為false則結(jié)束循環(huán);

  3.每次循環(huán)時(shí),都會(huì)在③中執(zhí)行循環(huán)體內(nèi)的代碼;

  4.每次循環(huán)結(jié)束后,會(huì)自動(dòng)執(zhí)行第④部分,改變變量的初始值;

  5.for循環(huán)中①、②、④部分都可以省略不寫,但必須存在兩個(gè)”分號(hào);“,也可以只寫一部分;

  6.我們聲明變量類型時(shí),不一定非得是int,最后改變初始值也不一定非得是++;

  7.for循環(huán)中支持嵌套循環(huán)。

  根據(jù)上面的步驟,壹哥把重點(diǎn)步驟給大家總結(jié)如下:

  ①-->②-->③-->④-->②-->③-->④-->②-->③-->④-.....-②

  如下圖所示:

圖片 1

  2.for循環(huán)的幾種寫法

  2.1 基本for循環(huán)

  基本for循環(huán)包括三個(gè)部分:循環(huán)變量初始化、循環(huán)條件判斷和循環(huán)變量更新。通常的形式如下:

  for (int i = 0; i < n; i++) {

  // 循環(huán)體

  }

  其中,i 是循環(huán)變量,n 是循環(huán)次數(shù),循環(huán)體是需要重復(fù)執(zhí)行的代碼。

  2.2 foreach循環(huán)

  foreach循環(huán)通常用于遍歷數(shù)組或集合中的元素。它的語法形式為:

  for (類型 變量名 : 數(shù)組名) {

  // 循環(huán)體

  }

  其中,類型 是數(shù)組或集合中元素的數(shù)據(jù)類型,變量名 是循環(huán)變量的名稱,數(shù)組名 是需要遍歷的數(shù)組或集合的名稱。循環(huán)體是需要重復(fù)執(zhí)行的代碼。

  例如,遍歷一個(gè)整型數(shù)組的方式如下:

  int[] nums = {1, 2, 3, 4, 5};

  for (int num : nums) {

  System.out.println(num);

  }

  2.3 while循環(huán)

  while循環(huán)會(huì)在滿足循環(huán)條件時(shí)重復(fù)執(zhí)行代碼塊。它的語法形式為:

  while (循環(huán)條件) {

  // 循環(huán)體

  }

  其中,循環(huán)條件 是需要滿足的條件,循環(huán)體是需要重復(fù)執(zhí)行的代碼。

  例如,一個(gè)簡單的while循環(huán)如下所示:

  int i = 0;

  while (i < 10) {

  System.out.println(i);

  i++;

  }

  這個(gè)while循環(huán)會(huì)不斷地打印變量i的值,直到i的值達(dá)到10為止。

  2.4 do-while循環(huán)

  do-while循環(huán)與while循環(huán)類似,但它會(huì)先執(zhí)行一次循環(huán)體,然后再檢查循環(huán)條件。它的語法形式為:

  do {

  // 循環(huán)體

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

  其中,循環(huán)體 是需要重復(fù)執(zhí)行的代碼,循環(huán)條件 是需要滿足的條件。

  例如,一個(gè)簡單的do-while循環(huán)如下所示:

  int i = 0;

  do {

  System.out.println(i);

  i++;

  } while (i < 10);

  這個(gè)do-while循環(huán)會(huì)先打印變量i的值為0,然后將i的值加1,并檢查i是否小于10,如果滿足則再次執(zhí)行循環(huán)體。這個(gè)循環(huán)會(huì)執(zhí)行10次,因?yàn)樵诘?0次執(zhí)行時(shí),i的值為9,不再小于10。

  2.5 簡寫形式

  在for循行中,第①/②/④這幾部分的內(nèi)容都是可以省略簡寫的。

  public class Demo02 {

  public static void main(String[] args) {

  //簡寫形式1:在第一部分中簡寫變量的聲明

  //int i = 0;

  //for (; i < 100; i++) {

  // System.out.println("小白學(xué)java,i=" + i);

  //}

  //簡寫形式2:在第①和④中簡寫

  //int i = 0;

  //for ( ; i < 100; ) {

  // i++;

  // System.out.println("小白學(xué)java,i=" + i);

  //}

  //簡寫形式3,①/②/④都簡寫--->死循環(huán)

  int i = 0;

  for (;;) {

  i++;

  System.out.println("小白學(xué)java,i=" + i);

  }

  }

  }

  我們一定要注意,如果是第三種簡寫形式,把①/②/④都簡寫了,就會(huì)成為死循環(huán),本段程序會(huì)一直不停地打印下去。此時(shí)我們可以點(diǎn)擊控制臺(tái)的”紅色“按鈕停止程序的運(yùn)行

  3.for循環(huán)語句的用法

  需求:循環(huán)輸出100遍 ”小白學(xué)java“

  public class ForDemo {

  public static void main(String[] args) {

  //for循環(huán),這里的i就是一個(gè)局部變量

  for( int i=0; i<100; i++) {

  System.out.println("小白學(xué)java,i="+i);

  }

  }

  }

  注意,上面for循環(huán)中定義的變量i就是一個(gè)局部變量哦!

  需求:計(jì)算1-100的和,1+2+3+4+5+...+100

  public class ForDemo02 {

  public static void main(String[] args) {

  // 計(jì)算1-100的和,1+2+3+4+5+...+100

  //定義一個(gè)用于存儲(chǔ)”和“的局部變量

  int sum = 0;

  for (int i = 1; i <= 100; i++) {

  // i = 1;

  // sum=0+1;

  // i = 2;

  // sum= 1+2;

  sum = sum + i;

  }

  System.out.println("sum=" + sum);

  }

  }

  需求:打印出一個(gè)三角形,用“*”來表示。

  public class ForDemo03 {

  public static void main(String[] args) {

  // for循環(huán)嵌套--打印出一個(gè)三角形,用“*”來表示

  for (int i = 1; i <= 5; i++) {

  //定義第2個(gè)局部變量j,j設(shè)置為<=i

  for (int j = 1; j <= i; j++) {

  //這里千萬不要換行哦

  System.out.print(" * ");

  }

  //這里一定要換行哦

  System.out.println();

  }

  }

  }

圖片 2

  需求:使用for循環(huán)產(chǎn)生20個(gè)1-100的隨機(jī)數(shù),且這20個(gè)數(shù)互不相同:

  import java.util.Random;

  public class ForDemo03 {

  public static void main(String[] args) {

  int[] randomNumbers = new int[20];

  Random random = new Random();

  for (int i = 0; i < randomNumbers.length; i++) {

  int newNumber;

  boolean numberExists;

  do {

  newNumber = random.nextInt(100) + 1;

  numberExists = false;

  for (int j = 0; j < i; j++) {

  if (randomNumbers[j] == newNumber) {

  numberExists = true;

  break;

  }

  }

  } while (numberExists);

  randomNumbers[i] = newNumber;

  System.out.println(randomNumbers[i]);

  }

  }

  }

  注意:在上面的代碼中,我們使用了一個(gè)do-while循環(huán),每次生成一個(gè)新的隨機(jī)數(shù)并檢查它是否已經(jīng)存在于數(shù)組中。如果已經(jīng)存在,則繼續(xù)生成新的隨機(jī)數(shù),直到找到一個(gè)不存在于數(shù)組中的隨機(jī)數(shù)。然后將該隨機(jī)數(shù)存儲(chǔ)在數(shù)組中,并輸出到控制臺(tái)。

  需求:打印出九九乘法表。

  public class Demo02 {

  public static void main(String[] args) {

  // for循環(huán)嵌套--打印出一個(gè)三角形,用“*”來表示

  for (int i = 1; i <= 5; i++) {

  //定義第2個(gè)局部變量j,j設(shè)置為<=i

  for (int j = 1; j <= i; j++) {

  //這里千萬不要換行哦

  System.out.print(" * ");

  }

  //這里一定要換行哦

  System.out.println();

  }

  }

  }

圖片 3

  經(jīng)常有朋友問:java循環(huán)長度的相同、循環(huán)體代碼相同的兩次for循環(huán)的執(zhí)行時(shí)間相差了100倍這是為什么?

  在這里給大家總結(jié)幾種情況:大家可以學(xué)習(xí)參考下:

  1.編譯器優(yōu)化:Java編譯器在編譯代碼時(shí)會(huì)進(jìn)行一些優(yōu)化,例如將代碼重構(gòu)為更高效的形式,消除無用代碼等等。這些優(yōu)化可能會(huì)使一個(gè)循環(huán)比另一個(gè)循環(huán)更快速地執(zhí)行。

  2.緩存:在循環(huán)執(zhí)行期間,CPU會(huì)從內(nèi)存中讀取數(shù)據(jù)并將其緩存在緩存中。如果兩個(gè)循環(huán)訪問的數(shù)據(jù)不同,或者訪問數(shù)據(jù)的方式不同,緩存效率可能會(huì)受到影響,從而導(dǎo)致執(zhí)行時(shí)間的差異。

  3.硬件差異:執(zhí)行時(shí)間的差異也可能是由于硬件差異引起的,例如不同的CPU或內(nèi)存速度。

  4.其他因素:還有一些其他因素可能導(dǎo)致執(zhí)行時(shí)間的差異,例如操作系統(tǒng)負(fù)載、線程競爭等等。

  要確定造成執(zhí)行時(shí)間差異的具體原因,可以使用性能分析工具來分析代碼的執(zhí)行情況,例如VisualVM或Eclipse Memory Analyzer。這些工具可以幫助您確定循環(huán)中的瓶頸,并提供優(yōu)化建議,以改善代碼的性能。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
python字符串截取?

在Python中,字符串是一種非常常見的數(shù)據(jù)類型,它可以用來表示文本、數(shù)字、符號(hào)等內(nèi)容。在實(shí)際應(yīng)用中,我們經(jīng)常需要對(duì)字符串進(jìn)行截取,以便獲取...詳情>>

2023-11-02 17:56:27
Python socket C/S結(jié)構(gòu)的聊天室應(yīng)用實(shí)現(xiàn)?

隨著互聯(lián)網(wǎng)的發(fā)展,聊天室應(yīng)用成為人們?nèi)粘I钪惺殖R姷囊环N社交方式。Python語言的Socket模塊是實(shí)現(xiàn)網(wǎng)絡(luò)通信的重要工具,可以輕松地實(shí)現(xiàn)C/...詳情>>

2023-11-02 17:53:38
用while求1到100的奇數(shù)和?

在計(jì)算機(jī)編程中,循環(huán)語句是非常重要的一部分。而while語句是其中最基本也是最常用的一種。它的作用是在滿足一定條件的情況下,重復(fù)執(zhí)行一段代...詳情>>

2023-11-02 17:50:57
python創(chuàng)建一個(gè)集合?

在Python中,集合是一種無序且不重復(fù)的數(shù)據(jù)類型,可以用于存儲(chǔ)一組元素。創(chuàng)建一個(gè)集合非常簡單,只需要使用大括號(hào){}或者set()函數(shù)即可。使用大...詳情>>

2023-11-02 17:34:02
linux改文件屬主命令?

Linux文件相關(guān)命令1、命令一:cat cat命令應(yīng)該是在Linux中查看文件內(nèi)容最常見的命令了。使用cat命令會(huì)打印指定文件的所有內(nèi)容到標(biāo)準(zhǔn)輸出上,比...詳情>>

2023-10-31 19:58:15