网站首页 > java教程 正文
在上一小节中,我们学习了while方式的循环,也了解了循环的概念,这小节我们来学习一种特殊的while循环,也是被使用最广泛的循环-for循环
for 循环语法
for (变量声明; 条件; 迭代语句) {
//循环体
}
在关键字 for后面的括号中,会有三个语句
1. 第一个语句是变量声明语句,允许声明一个或多个整型变量;
2. 第二个语句是条件,条件的检测方式与while循环相同(每次循环开始前判断条件成立与否)。如果条件是true,则将执行循环体内的代码;然后执行迭代语句,再次请求条件,依次循环,直到条件false为止
3. 第三个语句是迭代语句,虽然可以是任何语句,但该语句通常用于递增或递减变量。
for 循环流程图
示例1
public class ForLoop1 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i ++) {
System.out.println("今天天气不错");
}
}
}
解析:
在上面的示例中,我们有
- 初始化表达式:int i = 1
- 测试表达式:i < = 5
- 更新表达式:i++
在此,最初i的值为 1。因此,测试表达式首次求值为true。 因此,将执行打印语句。 现在,将求值更新表达式。
每次求值更新表达式时,i的值增加 1。再次,求值测试表达式。 并且,重复相同的过程。
该过程一直进行到i为 11 时。当i为 11 时,测试表达式(i <= 10)为false,并且for循环终止。
有关的表达式及求值方式,在我们之前的文章中已经学过,不够熟悉再看一下之前的文章。
示例2
public class ForLoop2 {
public static void main(String[] args) {
int sum = 0; // 累加和
for (int i = 1; i <= 100; i ++) {
sum += i; // 加和赋值运算
}
System.out.println("1到100的累加和为:" + sum);
}
}
解析:
1. 在执行循环体前,会先执行括号中的变量声明语句int i = 1,它定义了一个计数器变量i并且赋值为1(注意这个语句只执行一次)。
2. 然后会执行条件判断语句i <= 100,显然条件成立,执行循环体,循环体执行完成后会才会执行括号中的第三个语句i ++,再次判断条件是否成立,直到当i的值为100时,
3. 最后一次执行循环体,这个时候i再次自增1为101,条件不成立,结束循环。
1st 变量: i = 1 and sum = 0+1 = 1
2nd 变量: i = 2 and sum = 1+2 = 3
3rd 变量: i = 3 and sum = 3+3 = 6
4th 变量: i = 4 and sum = 6+4 = 10
... .. ...
100th 变量: i = 100 and sum = 4950 + 100 = 5050
实际使用中,通常使用for循环来遍历一个数组,我们将在 Java 数组小节举例介绍。
怪异使用
for循环还可以缺省变量声明语句、循环条件和迭代语句,如以下代码:
// 缺省变量声明语句
for (int i = 0; ; i ++) {
// 语句
}
// 缺省循环条件语句和迭代语句
for (int i = 0; ; ) {
// 语句
}
// 缺省所有语句 - 无限循环
for (;;) {
// 语句
}
但请注意,通常情况下不建议这样写。我们在这里提一下,只是希望大家看到类似的用法,不要认为是错的。
for each 循环
由于学习 for each 循环需要一些数组和集合的前置知识,我们将会在 Java 数组小节举例讲解。
break 和 continue 关键字
我们可以在循环体中使用这两个关键字来重定向程序执行流。通过以下例子我们体会一下。
break
代码:
public class BreakKeywords1 {
public static void main(String[] args) {
for (int i = 1; i <= 10; i ++) {
if(i == 3) { // 条件语句
System.out.println("当i等于3时,终止循环!");
break;
}
System.out.println("第"+i+"次循环");
}
System.out.println("没有循环啦");
}
}
解析:
循环打印数字的代码,当循环到达第3次迭代时,执行条件分支中的语句,将终止循环。
注意:break语句通常配合if语句使用。
continue
代码:
public class BreakKeywords1 {
public static void main(String[] args) {
for (int i = 1; i <= 10; i ++) {
if(i == 3) { // 条件语句
System.out.println("当i等于3时,不要执行本次循环!");
break;
}
System.out.println("第"+i+"次循环");
}
System.out.println("没有循环啦");
}
}
解析:
只是跳过当次循环,继续执行下一次循环。continue语句只能跳过它自己所在位置的循环。
小结
本节我们依次介绍了Java中的特殊循环结构:for循环以及for each循环。并且介绍了break和continue关键字在循环中的使用。
在使用循环结构编写业务代码时,为了避免死循环,一定要确保循环条件能够被影响。
猜你喜欢
- 2024-11-03 详细总结Java for循环的那些坑(java的for循环中是如何执行的)
- 2024-11-03 11.Java中的 while 循环(java的for循环语句)
- 2024-11-03 传说级大佬总结的几道Java循环练习题(适合新人)
- 2024-11-03 java中的while循环(javado while循环)
- 2024-11-03 Java流程控制语句之循环结构--初学者适用
- 2024-11-03 What?Java循环还能嵌套循环,说好的禁止套娃呢!「第12集」
- 2024-11-03 Golang for 循环(golangfor循环特性改变)
- 2024-11-03 JavaScript for 循环(javascriptfor循环数字累加)
- 2024-11-03 java循环的这4种遍历方式,有些16K的程序员可能是懵逼的
- 2024-11-03 用了那么久的 Java For 循环,你知道哪种方式效率最高吗?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)