全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

java中for循环语句的用法

发布时间:2023-03-21 17:31:00
发布人:qyf

  1.语法

  for循环的基本语法如下:

  for(①.声明并初始化循环变量;②.判断循环条件;④.改变循环变量值){

  //③.循环体

  }

  语法说明:

  1.for循环最先执行初始化步骤。在这里可以声明一种类型,但可以初始化一个或多个循环控制变量,也可以是空语句;

  2.判断循环条件,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。且for循环的执行次数在执行前就已经是确定的。

  3.执行一次循环后,就会更新一次循环控制变量的值;

  4.再次检测布尔表达式,循环执行上面的过程。

  2. 执行流程

  根据上面的for循环语法,壹哥把for循环的执行流程给大家做个详细的解释:

  1.首先我们要在第①步声明并初始化一个变量,该操作在循环中只会执行一次;

  2.每次循环之前,在第②步判断循环条件是否成立,只有当条件为true才会执行,如果条件为false则结束循环;

  3.每次循环时,都会在③中执行循环体内的代码;

  4.每次循环结束后,会自动执行第④部分,改变变量的初始值;

  5.for循环中①、②、④部分都可以省略不写,但必须存在两个”分号;“,也可以只写一部分;

  6.我们声明变量类型时,不一定非得是int,最后改变初始值也不一定非得是++;

  7.for循环中支持嵌套循环。

  根据上面的步骤,壹哥把重点步骤给大家总结如下:

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

  如下图所示:

图片 1

  2.for循环的几种写法

  2.1 基本for循环

  基本for循环包括三个部分:循环变量初始化、循环条件判断和循环变量更新。通常的形式如下:

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

  // 循环体

  }

  其中,i 是循环变量,n 是循环次数,循环体是需要重复执行的代码。

  2.2 foreach循环

  foreach循环通常用于遍历数组或集合中的元素。它的语法形式为:

  for (类型 变量名 : 数组名) {

  // 循环体

  }

  其中,类型 是数组或集合中元素的数据类型,变量名 是循环变量的名称,数组名 是需要遍历的数组或集合的名称。循环体是需要重复执行的代码。

  例如,遍历一个整型数组的方式如下:

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

  for (int num : nums) {

  System.out.println(num);

  }

  2.3 while循环

  while循环会在满足循环条件时重复执行代码块。它的语法形式为:

  while (循环条件) {

  // 循环体

  }

  其中,循环条件 是需要满足的条件,循环体是需要重复执行的代码。

  例如,一个简单的while循环如下所示:

  int i = 0;

  while (i < 10) {

  System.out.println(i);

  i++;

  }

  这个while循环会不断地打印变量i的值,直到i的值达到10为止。

  2.4 do-while循环

  do-while循环与while循环类似,但它会先执行一次循环体,然后再检查循环条件。它的语法形式为:

  do {

  // 循环体

  } while (循环条件);

  其中,循环体 是需要重复执行的代码,循环条件 是需要满足的条件。

  例如,一个简单的do-while循环如下所示:

  int i = 0;

  do {

  System.out.println(i);

  i++;

  } while (i < 10);

  这个do-while循环会先打印变量i的值为0,然后将i的值加1,并检查i是否小于10,如果满足则再次执行循环体。这个循环会执行10次,因为在第10次执行时,i的值为9,不再小于10。

  2.5 简写形式

  在for循行中,第①/②/④这几部分的内容都是可以省略简写的。

  public class Demo02 {

  public static void main(String[] args) {

  //简写形式1:在第一部分中简写变量的声明

  //int i = 0;

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

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

  //}

  //简写形式2:在第①和④中简写

  //int i = 0;

  //for ( ; i < 100; ) {

  // i++;

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

  //}

  //简写形式3,①/②/④都简写--->死循环

  int i = 0;

  for (;;) {

  i++;

  System.out.println("小白学java,i=" + i);

  }

  }

  }

  我们一定要注意,如果是第三种简写形式,把①/②/④都简写了,就会成为死循环,本段程序会一直不停地打印下去。此时我们可以点击控制台的”红色“按钮停止程序的运行

  3.for循环语句的用法

  需求:循环输出100遍 ”小白学java“

  public class ForDemo {

  public static void main(String[] args) {

  //for循环,这里的i就是一个局部变量

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

  System.out.println("小白学java,i="+i);

  }

  }

  }

  注意,上面for循环中定义的变量i就是一个局部变量哦!

  需求:计算1-100的和,1+2+3+4+5+...+100

  public class ForDemo02 {

  public static void main(String[] args) {

  // 计算1-100的和,1+2+3+4+5+...+100

  //定义一个用于存储”和“的局部变量

  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);

  }

  }

  需求:打印出一个三角形,用“*”来表示。

  public class ForDemo03 {

  public static void main(String[] args) {

  // for循环嵌套--打印出一个三角形,用“*”来表示

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

  //定义第2个局部变量j,j设置为<=i

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

  //这里千万不要换行哦

  System.out.print(" * ");

  }

  //这里一定要换行哦

  System.out.println();

  }

  }

  }

图片 2

  需求:使用for循环产生20个1-100的随机数,且这20个数互不相同:

  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]);

  }

  }

  }

  注意:在上面的代码中,我们使用了一个do-while循环,每次生成一个新的随机数并检查它是否已经存在于数组中。如果已经存在,则继续生成新的随机数,直到找到一个不存在于数组中的随机数。然后将该随机数存储在数组中,并输出到控制台。

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

  public class Demo02 {

  public static void main(String[] args) {

  // for循环嵌套--打印出一个三角形,用“*”来表示

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

  //定义第2个局部变量j,j设置为<=i

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

  //这里千万不要换行哦

  System.out.print(" * ");

  }

  //这里一定要换行哦

  System.out.println();

  }

  }

  }

图片 3

  经常有朋友问:java循环长度的相同、循环体代码相同的两次for循环的执行时间相差了100倍这是为什么?

  在这里给大家总结几种情况:大家可以学习参考下:

  1.编译器优化:Java编译器在编译代码时会进行一些优化,例如将代码重构为更高效的形式,消除无用代码等等。这些优化可能会使一个循环比另一个循环更快速地执行。

  2.缓存:在循环执行期间,CPU会从内存中读取数据并将其缓存在缓存中。如果两个循环访问的数据不同,或者访问数据的方式不同,缓存效率可能会受到影响,从而导致执行时间的差异。

  3.硬件差异:执行时间的差异也可能是由于硬件差异引起的,例如不同的CPU或内存速度。

  4.其他因素:还有一些其他因素可能导致执行时间的差异,例如操作系统负载、线程竞争等等。

  要确定造成执行时间差异的具体原因,可以使用性能分析工具来分析代码的执行情况,例如VisualVM或Eclipse Memory Analyzer。这些工具可以帮助您确定循环中的瓶颈,并提供优化建议,以改善代码的性能。

相关文章

python写入json文件?

python写入json文件?

2023-11-02
vscode设置tab为4个空格?

vscode设置tab为4个空格?

2023-11-02
更新pycharm?

更新pycharm?

2023-11-02
anaconda每次打开都要安装?

anaconda每次打开都要安装?

2023-11-02

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31
在线咨询 免费试学 教程领取