java day04 循环结构(for、while、do/while)与流程控制关键字(break、continue、return)
程序员文章站
2024-03-21 23:44:52
...
1、什么是循环
概念:
通过某个条件,重复的执行一段逻辑代码。
2、for循环
2.1、for循环语法
语法:
for(初始条件语句; 循环条件语句; 条件控制语句){
//循环体
}
- 初始化条件:控制循环的开始
- 条件判断语句:控制循环的结束
- 条件控制语句:控制循环的过程(如何从开始到结束)
执行流程:
- 首次执行初始部分(仅一次)。
- 对布尔表达式进行判断,结果为true,则执行逻辑代码。
- 本次执行完毕后,执行迭代部分,再次判断,结果仍旧为true,则再次执行逻辑代码。
- 直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。
语法示例:
package Day04_for_while;
// 打印6遍上课
public class Demo01 {
public static void main(String[] args) {
for (int i=0;i<=6;i++){
System.out.println("上课");
}
}
}
课堂练习:
package Day04_whileTest;
public class Demo02 {
public static void main(String[] args) {
//打印10-1
int i = 10;
while(i > 0){
/* System.out.println(i);
i--;*/
System.out.println(i--);
}
System.out.println("-------------");
//打印1-10之间的数据和
int sum = 0;
i = 1;
while(i < 11){
sum += i;
i++;
}
System.out.println("sum:"+sum);
System.out.println("-----------");
//打印-100之间能被3整除的数之和
i = 1;
sum = 0;
while(i < 101){
if(i%3 == 0){
sum += i;
}
i++;
}
System.out.println("sum:"+sum);
}
}
2.2 for用途
适用于循环次数明确的情况
3、while循环
语法:
初始化语句
while(条件判断语句){
循环体语句
条件控制语句
}
执行流程:
初始化语句 --> 条件判断语句
–>true–>循环体语句、条件控制语句–>条件判断语句–>true–>false–>结束循环
代码示例:
public class Demo01 {
public static void main(String[] args) {
int i =1;
while(i < 11){
System.out.println(i);
i++;
}
}
}
课堂练习:
package Day04_whileTest;
/**
* @author Ran
* @since JDK 1.8
* 我有个梦想,想获得小小目标
* 1.假设一个月存1000,问需要多久成为千万富翁
* 2.假设每个月存1000,第二个月开始每个月比上一个月多存500,问多久成为千万富翁
* 3.作为一名收入正常的程序员,一个月存6000,每一年多存1200,问多久成为千万富翁
*
*/
public class Demo03 {
/*
// 1.假设一个月存1000,问需要多久成为千万富翁
public static void main(String[] args) {
int month = 0;
int money = 0;
while (money<10000000){
money += 1000;
month++;
}
System.out.println("需要"+month+"个月");
System.out.println("需要"+month/12+"年又"+month%12+"月");
}
*/
/*
//2.假设每个月存1000,第二个月开始每个月比上一个月多存500,问多久成为千万富翁
public static void main(String[] args) {
int month = 0;
int money = 0;
int addMoney = 1000;
while(money<10000000){
money += addMoney;
month++;
addMoney +=500;
}
System.out.println("需要"+month+"个月");
System.out.println("需要"+month/12+"年又"+month%12+"月");
}
*/
// 3.作为一名收入正常的程序员,一个月存6000,每一年多存1200,问多久成为千万富翁
public static void main(String[] args) {
int month = 0;
int money = 0;
int addMoney = 6000;
while (money<10000000){
money+=addMoney;
month++;
if(month%12==0){
addMoney+=1200;
}
}
System.out.println("需要"+month+"个月");
System.out.println("需要"+month/12+"年又"+month%12+"月");
}
}
4、do while循环
语法:
初始化语句
do{
循环体语句;
条件控制语句
}while(条件判断语句);
执行流程:
- 先执行一次循环操作之后,再进行布尔表达式的判断。
- 如果结果为true,则再次执行循环操作。
- 如果结果为false,才会退出循环结构,执行后续代码。
注意:
do/while 循环与 while 循环的区别在于:do/while 循环会先执行一次循环内容,再进行判断
代码示例:
public class Demo05 {
public static void main(String[] args) {
int i = 1;
do{
System.out.println(i++);
}while(i < 11);
}
}
课堂练习:
package Day04_whileTest;
import java.util.Random;
import java.util.Scanner;
public class Demo06 {
public static void main(String[] args) {
int max = 100; // 最大值
int min = 0; // 最小值
int guess = 0; // 用户猜的数
Random ran = new Random();
int ranNum = ran.nextInt(98)+2; // [2,99]
Scanner input = new Scanner(System.in);
do {
System.out.print("请在("+min+"~"+max+")之间猜:");
guess = input.nextInt();
if(guess<ranNum){
min = guess;
}else if(guess>ranNum){
max = guess;
}
}while (guess != ranNum);
System.out.println("恭喜你猜对了"+ranNum);
}
}
5、流程控制关键字
break:
- break 在循环体语句中,作用是结束当前循环
- break借助标号可以实现结束任意一层或者多层循环
// break 在循环体语句中,作用是结束当前循环
System.out.println("程序开始");
//break 在循环体语句中,作用是结束当前循环
for(int i = 1;i < 5;i++){
for(int j = 1;j < 4;j++){
if(j == 2){
break;
}
System.out.print(j);
}
System.out.println();
}
System.out.println("程序结束");
// break借助标号可以实现结束任意一层或者多层循环
System.out.println("程序开始");
A:
for(int i = 1;i < 5;i++){
for(int j = 1;j < 4;j++){
if(j == 2){
break A;
}
System.out.print(j);
}
System.out.println();
}
System.out.println("程序结束");
continue:
- continue在循环体语句中的作用是结束一次循环开启下次循环
// continue在循环体语句中的作用是结束一次循环开启下次循环
System.out.println("程序开始");
for(int i = 1;i < 5;i++){
for(int j = 1;j < 4;j++){
if(j == 2){
continue;
}
System.out.print(j);
}
System.out.println();
}
System.out.println("程序结束");
return:
- return的作用是结束方法
// return的作用是结束方法
System.out.println("程序开始");
for(int i = 1;i < 5;i++){
for(int j = 1;j < 4;j++){
if(j == 2){
return;
}
System.out.print(j);
}
System.out.println();
}
System.out.println("程序结束");