Java基础知识4【循环结构】

Java基础知识4

循环结构

while循环结构

语法
while ( 循环条件 ) {
  循环体
}

Scanner scanner = new Scanner(System.in);
// 若时间不在范围内需要重新输入,直到符合要求
System.out.print("请输入一个配送时间(范围8-20):");
int time = scanner.nextInt();
while(time < 8 || time > 20){
    //重新输入
    System.out.print("不在配送时间内,请重新输入:");
    time = scanner.nextInt();
}
System.out.println("配送时间:" + time);
scanner.close();
  • 特点:先进行条件判断,如果条件成立,执行循环体,如果条件不成立,循环体不执行
  • 注意
    • 在循环体操作中,要控制循环条件变量的变更(否则死循环)
    • 循环体操作只有一条语句,大括号可以省略(不建议省略)

do-while循环结构

语法
do {
  循环体
} while ( 循环条件 );

// 根据输入判断
Scanner scanner = new Scanner(System.in);
int number = 0; 
System.out.println();
// 使用do while
do{
    System.out.println("\t欢迎使用购物管理系统");
    System.out.println("\t\t1. 登陆系统");
    System.out.println("\t\t2. 注册");
    System.out.println("\t\t3. 忘记密码");
    System.out.println("\t\t4. 常见问题");
    System.out.println("*****************************************");
    System.out.print("请选择,输入数字:");
    number = scanner.nextInt();
}while(number > 4);
System.out.println();
System.out.println("\t选择成功,进行对应处理");
switch (number) {
    case 1:
        System.out.println("\t\t欢迎登录!");
        break;
    case 2:
        System.out.println("\t\t请输入注册信息!");
        break;
    case 3:
        System.out.println("\t\t请修改密码!");
        break;
    case 4:
        System.out.println("\t\t常见问题如下");
        break;
}
scanner.close();
  • 特点:先执行循环体,后执行条件判断,不论条件是否成立,循环体至少执行一次
  • 注意:while后面要分号结尾

for循环

语法
for(参数初始化; 条件判断; 循环变量值变更){
  循环体
}

// for循环
int for_sum = 0;
for(int i = 1; i < 100; i++){
    if(i % 3 != 0){
        for_sum += i;
    }
}

// 等效替换
// while循环
int while_sum = 0;
int while_value = 1;
while(while_value < 100){
    if(while_value % 3 != 0){
        while_sum += while_value;
    }
    while_value++;
}
		
// do while循环
int do_sum = 0;
int do_Value = 1;
do{
    if(do_Value % 3 != 0){
        do_sum += do_Value;
    }
    do_Value++;
} while(do_Value < 100);
  • 执行顺序:初始化–>条件判断–>执行循环体–>循环变量变更–>条件判断(成立)–>执行循环体–>循环变量变更… (直到条件不成立)

  • 注意

    • 初始化变量可以写多个,但是作用域仅在循环内可见,如需循环外获取变量值,需要定义在循环外
    • 循环变量的变更也可以写在循环内部,不可以省略
    • 条件判断不能省略,否则死循环
    • for(;😉{…}无语法错误,但会死循环,相当于while(true){…}
    • 条件可以不写,但两个分号不能省略

多重循环

语法
for(循环条件1){
  //循环体1
  for(循环条件2){
    //循环体2
  }
}

Scanner scanner = new Scanner(System.in);
System.out.print("请输入行数:");
int line = scanner.nextInt();
System.out.print("请输入列数:");
int column = scanner.nextInt();
// 输出矩形
for (int i = 0; i < line; i++) {
    System.out.println();
    for (int j = 0; j < column; j++) {
        System.out.print("* ");
    }
}
//输出平行四边形
System.out.println();
for (int i = 0; i < line; i++) {
    System.out.println();
    for (int k = 0; k < line - i - 1; k++) {
        System.out.print(" ");
    }
    for (int j = 0; j < column; j++) {
        System.out.print("* ");
    }
}
// 输出直角三角形
System.out.println();
for (int i = 1; i <= line; i++) {
    System.out.println();
    for (int j = 1; j <= i * 2 - 1; j++) {
        System.out.print("*");
    }
}
// 输出等腰三角形
System.out.println();
for (int i = 1; i <= line; i++) {
    System.out.println();
    for (int k = 1; k <= line - i; k++) {
        System.out.print(" ");
    }
    for (int j = 1; j <= i * 2 - 1; j++) {
        System.out.print("*");
    }
}
//关闭输入流
scanner.close();
  • 备注:while,或者do-while类似,循环内嵌套循环,三种循环可以相互嵌套

  • 注意:循环的嵌套,一般不超过两层

  • 原理:外层循环循环执行一次,内层循环执行一遍

控制流程

break
// 只能结束当前循环,如果有多重循环,不能结束多层
Scanner scanner = new Scanner(System.in);
System.out.print("请输入学生姓名:");
String name = scanner.next();
double sum = 0;
boolean error = false;

for (int i = 1; i <= 5; i++) {
    System.out.print("请输入第" + i + "门成绩:");
    double score = scanner.nextDouble();
    // 判断是否合法成绩
    if (score < 0) {
        error = true;
        break;
    }
    sum += score;
}

常用于switch结构和循环结构中
break语句终止(跳出)某个循环,程序跳转到循环块外的下一条语句
只能跳出当前所在的循环,不能跳出多重循环

continue
int sum = 0;
for (int i = 1; i <= 100; i++) {
    if(i % 2 != 0){
        continue;
    }
    sum += i;
}

一般用于循环结构中
continue跳出本次循环,进入下一次循环
不能结束循环,只能跳过某个条件下的循环

循环总结

  • 三种循环相同点

    • 均有四个部分:初始部分、循环条件、循环体、更新循环变量
  • 三种循环不同点

    • 语法不同
    • 执行顺序不同
      • while循环:先判断,再执行
      • do-while循环:先执行,再判断
      • for循环:先判断,再执行
  • 使用场景

    • 循环次数确定的情况,通常选用for循环
    • 循环次数不确定的情况,需要先运行一次的循环,使用do-while循环
    • 循环次数不确定的情况,不需先运行一次的循环,使用while循环
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值