Jave从零开始(day05)

目录

循环结构

1.while循环

2.do-while循环

3.for循环

4.三种循环对比

5.break关键字

6.continue关键字

7.break和continue区别

8.debug调试

9.多重循环


循环结构

1.while循环

while循环

while单词:当

循环结构都有四个必不可少的条件

  • 计数器初始化
  • 判断条件
  • 循环体
  • 计数器变化

while循环可以用于处理循环次数确定或者不确定的情况

实际开发环境中:通常用于处理循环次数不定的情况,因为循环次数确定有更为简洁的循环结构for循环

public class Test1 {
    public static void main(String[] args) {
        // 计数器初始化
        int i = 2;

        while(i <= 1){ // 判断条件

            System.out.println("第"+ i  +"遍好好学习"); //循环体

            i++; // 计数器变化

        }

        System.out.println("程序结束");

    }
}

2.do-while循环

do-while循环可以用于处理循环次数不确定的情况,因为次数确定有更为简洁的循环结构for循环

while和do-while的区别?

while循环是先判断后执行,如果条件不成立一次也不执行

do-while循环先执行后判断,不管条件是否成立,至少执行一次

import java.util.Scanner;

/**

 *  do-while循环:做……当……
 *  先执行后判断,不管条件是否成立,至少执行一次
 *
 *  经过几天的学习,老师给赵四一道测试题,让他先上机编写程序完成,
 *  然后老师检查是否合格。如果不合格,则继续编写……
 *
 *  do-while可以用于处理循环次数不确定或者确定的情况
 *  实际开发中:使用do-while处理循环次数不确定的情况,因为次数确定有更为简洁的循环结构  for循环
 *
 *  while和do-while的区别?
 *  while循环是先判断后执行,如果条件不成立一次都不执行
 *  do-while循环先执行后判断,不管条件是否成立,至少执行一次
 */
public class Test1 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        String answer;
        do{
            System.out.println("上机编写程序……");

            System.out.println("请输入学习任务是否合格?y/n");

            answer = input.next();

//            System.out.println("上机编写程序……");
//
//            System.out.println("请输入学习任务是否合格?y/n");
//
//            answer = input.next();

        }while(answer.equals("n"));

//
//        if(answer.equals("n")){
//
//            System.out.println("上机编写程序……");
//
//        }else{
//
//            System.out.println("恭喜你完成学习任务");
//
//        }

        System.out.println("恭喜你完成学习任务");




    }
}

3.for循环

for循环:为了.....

for循环用于处理循环次数确定的情况

import java.util.Scanner;

/**
 *  需求:循环输入某同学结业考试的5门课成绩,并计算平均分
 */
public class Test2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.println("请输入姓名");

        String name = input.next();

        double sum = 0;

        for(int i = 1;i <= 5;i++){
            System.out.println("请输入5门成绩的" + i + "门成绩");

            double score = input.nextDouble();

            sum = sum + score;
        }

        System.out.println("平均分是:" + sum / 5);






    }
}

3.1for循环常见问题

for循环常见问题1:计数器未初始化


/**
 *  for循环常见问题1:计数器未初始化
 */
public class Test4 {
    public static void main(String[] args) {
        int i = 1;
        for(;i <= 10;i++){
            System.out.println(i);
        }
    }
}

for循环常见问题2:缺少判定条件,导致死循环


/**
 *  for循环常见问题2:缺少判断条件
 */
public class Test5 {
    public static void main(String[] args) {
        for(int i = 1;;i++){
            System.out.println(i);
        }

        // System.out.println(); 不可达代码

    }
}

for循环常见问题3:缺少计数器变化,导致死循环

/**
 *  for循环常见问题3:缺少计数器变化
 */
public class Test6 {
    public static void main(String[] args) {
        for(int i = 0;i < 10;){
            System.out.println(i);
        }

        System.out.println();
    }
}

for循环常见问题4:for小括号内只写两个分号

/**
 *  for循环常见问题4:for小括号内只写两个分号
 */
public class Test7 {
    public static void main(String[] args) {
        for(;;){
            System.out.println("hello");
        }
    }
}

4.三种循环对比

区别1:执行顺序

while循环:先判断,后执行

do-while循环:先执行,后判断

for循环:先判断,后执行

区别2:适用情况

循环次数确定的情况,通常使用for循环

循环次数不确定的情况,通常选用while或do-while循环

5.break关键字

break:可以用于switch或者循环结构中,分别表示跳出switch结构或者中断循环结构,没有执行完的循环次数不再执行

break再循环中通常结合分支语句来使用

public class Test1 {
    public static void main(String[] args) {
        for(int i = 1;i <= 10;i++){

            System.out.println("跑步第"+ i +"圈");
            if(i == 5){
                System.out.println("太累了,退出");
                break;
            }
        }

        System.out.println("程序结束");

    }
}

6.continue关键字

continue:只能用在循环中,表示跳出本次循环,继续执行下一次循环

public class Test1 {
    public static void main(String[] args) {
        for(int i =1; i <= 10;i++){
            if(i == 5){
                continue; // break 对比效果
            }
            System.out.println(i);
        }
    }
}

7.break和continue区别

使用场合

break用于switch结构和循环结构中

continue用于循环结构中

作用(循环结构中)

break语句终止某个循环,程序跳转到循环外的下一条语句

continue跳出本次循环,进入下一次循环

双重循环亦如此

8.debug调试

9.多重循环

分别使用单层循环以及双重循环打印矩形

外层循环变量变化一次,内层循环变量变化一轮

外层循环控制行数 内层循环控制列数

使用多重循环打印平行四边形

当我们打印三角形 第一行元素的个数决定了计数器的初始值

如果元素越来越多 那么就++ 当计数器为++ 我们必须设置一个上限 也就是条件必须小于或者小于等于某个值

如果元素越来越少 那么就-- 当计数器未-- 我们必须设置之一个下限 也就是条件必须大于或者大于等于某个值

/**
 *  使用多重循环打印平行四边形
 *  当我们打印三角形 第一行元素的个数决定了计数器的初始值
 *  如果元素越来越多 那么就++  当计数器为++ 我们必须设置一个上限 也就是条件必须小于或者小于等于某个值
 *
 *  如果元素越来越少 那么就--  当计数器未-- 我们必须设置之一个下限 也就是条件必须大于或者大于等于某个值
 */
public class Test1 {
    public static void main(String[] args) {
        for (int i = 1; i <= 5 ; i++) { // 外层循环 5行
            // 左半部分  倒三角
            for(int j = 5;j >= i;j--){
                System.out.print("&");
            }

            // 右半部分 矩形
            for (int j = 1; j <= 5; j++) {
                System.out.print("*");
            }

            // 换行
            System.out.println();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值