【Java学习】006_循环:for/while/do…while
一、for循环
格式
for(初始化条件; 判断条件; 控制条件){
语句体;
}
初始化条件:定义一个变量,并且赋值
判断条件:关系运算符
控制条件:自增+1
语句体:想要执行的内容
执行流程
初始化条件 --> 判断条件 --> 语句体 --> 控制条件
--> 判断条件 --> 语句体 --> 控制条件
--> 判断条件 --> 语句体 --> 控制条件
……
知道判断条件不满足,循环结束
举例
1. 在控制台打印出1~10的数字
package com02;
public class demo01 {
public static void main(String[] args) {
for(int i = 1; i <= 10; i++){
System.out.println(i);
}
}
}
2. 在控制台打印出1~10的数字的和
package com02;
public class demo02 {
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i <= 10; i++){
sum = sum + i;
}
System.out.println(sum);
}
}
3. 在控制台打印出1~100之间的偶数
方式一:
package com02;
public class demo03 {
public static void main(String[] args) {
for(int i = 1; i <=100; i++){
// 判断i是否为偶数
if(i % 2 == 0){
System.out.println(i);
}
}
}
}
方式二:
package com02;
public class demo03 {
public static void main(String[] args) {
for(int i = 1; i <=100; i++){
// 判断i是否为偶数
if(i % 2 != 1){
System.out.println(i);
}
}
}
}
方式三:
package com02;
public class demo03 {
public static void main(String[] args) {
for(int i = 2; i <= 100; i+=2){
System.out.println(i);
}
}
}
4. 在控制台打印出1~10之间的奇数的个数
package com02;
public class demo04 {
public static void main(String[] args) {
int count = 0;
for(int i = 1; i <= 10; i++){
if(i % 2 == 1){
count++;
}
}
System.out.println(count);
}
}
二、while循环
格式
初始化条件;
while( 判断条件){
语句体;
控制条件;
}
初始化条件:定义一个变量,并且赋值
判断条件:关系运算符
控制条件:自增+1
语句体:想要执行的内容
执行流程
初始化条件 --> 判断条件 --> 语句体 --> 控制条件
--> 判断条件 --> 语句体 --> 控制条件
--> 判断条件 --> 语句体 --> 控制条件
……
知道判断条件不满足,循环结束
举例
1. 在控制台打印出1~10的数字
package com02;
public class demo05 {
public static void main(String[] args) {
int i = 1;
while(i <= 10){
System.out.println(i);
i++;
}
}
}
2. 在控制台打印出1~10的数字的和
package com02;
public class demo06 {
public static void main(String[] args) {
int i = 1;
int sum = 0;
while(i <= 10){
sum += i;
i++;
}
System.out.println(sum);
}
}
3. 在控制台打印出1~100之间的偶数
package com02;
public class demo07 {
public static void main(String[] args) {
int i = 1;
while(i <= 100){
// 判断是否为偶数
if(i % 2 == 0){
System.out.println(i);
}
i++;
}
}
}
4. 在控制台打印出1~10之间的奇数的个数
package com02;
public class demo08 {
public static void main(String[] args) {
int count = 0;
int i = 1;
while(i <= 10){
if(i % 2 == 1){
count++;
}
i++;
}
System.out.println(count);
}
}
三、do…while循环
格式
初始化条件;
do{
语句体;
控制条件;
}while(判断条件);
初始化条件:定义一个变量,并且赋值
判断条件:关系运算符
控制条件:自增+1
语句体:想要执行的内容
执行流程
初始化条件 --> 语句体 --> 控制条件 --> 判断条件
--> 语句体 --> 控制条件 --> 判断条件
--> 语句体 --> 控制条件 --> 判断条件
……
知道判断条件不满足,循环结束
举例
1. 在控制台打印出1~10的数字
package com02;
public class demo09 {
public static void main(String[] args) {
int i = 1;
do{
System.out.println(i);
i++;
}while(i <= 10);
}
}
四、for/while/do…while循环的区别
do…while 与 for和while
do…while
语句体和控制条件至少会执行一次
语句体和控制条件和判断条件执行的次数是一样多的
for和while
语句体和控制条件可以一次都不执行
语句体和控制条件都比判断条件少执行一次
while与for
while
初始化条件在while循环结束之后,依然可以继续使用
语句体和控制条件和判断条件执行的次数是一样多的
for
初始化条件,一旦for循环结束,就不能用了
for(int i = 1; i <= 10; i++){
}
System.out.println(i);变形写法:
int i;
for(int i = 1; i <= 10; i++){
}
System.out.println(i);
while与for使用建议
明确循环次数建议使用for
不明确循环次数建议使用while
五、死循环
package com02;
public class demo10 {
public static void main(String[] args) {
// 死循环
for(;;){
System.out.println("哈哈");
}
// 死循环
while(true) {
System.out.println("呵呵");
}
}
}
六、break和continue
break
可以使用在switch中,用来结束switch
也可以使用在循环中,用来结束循环(跳出循环)
continue
用在循环中,用来结束本次循环,继续下一次循环
注意:
在同一对花括号内,break和continue关键字的下面,不能有任何语句,因为永远都执行不到,会变异报错
七、循环嵌套
将一个循环放入到另一个循环中
外层循环控制行数,内层循环控制列数
例1:在控制台上打印出由*组成的矩形
**
**
**
**
package com02;
public class demo11 {
public static void main(String[] args) {
// 方式一:
for(int i = 1; i <= 4; i++){
System.out.println("****");
}
System.out.println(); // 为了换行
System.out.println(); // 为了换行
// 方式二:
for(int j = 1; j <= 4; j++){
System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.println(); // 为了换行
}
System.out.println(); // 为了换行
System.out.println(); // 为了换行
// 方式三:
for(int m = 1; m <= 4; m++){
for(int n = 1; n <= 4; n++){
System.out.print("*");
}
System.out.println(); // 为了换行
}
}
}
例2:在控制台上打印出由*组成的三角形形
*
**
***
**
***
package com02;
public class demo12 {
public static void main(String[] args) {
// 方式一:
System.out.println("*");
System.out.println("**");
System.out.println("***");
System.out.println("****");
System.out.println("*****");
System.out.println(); // 为了换行
System.out.println(); // 为了换行
// 方式二:
for(int m = 1; m <= 5; m++){
for(int n = 1; n <= m; n++){
System.out.print("*");
}
System.out.println(); // 为了换行
}
}
}