java零基础入门-break、continue讲解

504 阅读6分钟

「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战

哈喽,各位小伙伴们好,我是喵手。

一、前言

       上一期,我们着重是讲解了如何用循环解决一些算法题,对吧,虽然都比较简单,但是对于刚入门的小伙伴们来说,就不是很简单了,对吧,所以还是有必要单独拿一期进行讲解,毕竟这样方便刚入门的小伙伴学习。

       那这一期,我们就要对流程控制语句之break、continue语法,讲完这期,我们就将进行一个大板块的讲解,至于这些内容,还没掌握就得把这几期的内容多进行巩固,直到学会为止。

二、break语句

       首先break语句目的是结束循环,跳出循环体。不管是那种循环,只要执行到break语句,直接终止循环,然后按顺序执行循环体之外的代码。

       可以使用break语句强行退出循环结构,忽略循环体中的其他任何语句和循环的条件判断。在循环中一旦碰到break,循环就被终止,在循环后面的语句就得重新开始。

如下,我给大家举个实例,进行演示break。

做一个简易版抽奖,中奖数可以由举办方进行键盘输入,抽奖次数是10次,然后由抽奖人进行手动抽奖,然后机器进行判断,会提示你大了还是小了还是中奖了。

/**
 * 进行抽奖
 */
public static void isWin() {

    //输入中奖数
    System.out.println("请输入中奖数数字:");
    Scanner input = new Scanner(System.in);
    int winNum = input.nextInt(); // 接收键盘输入数据
    //记录抽奖轮数
    int lunshu = 0;
    for (int i = 1; i <= 10; i++) {
        lunshu = i;        
        System.out.println("-----------进行第" + i + "轮猜数-----------");
        System.out.println("请输入你要猜的数字:");
        int cai = input.nextInt();
        if (cai > winNum) {
            System.out.println("猜大了!");
        }
        if (cai < winNum) {
            System.out.println("猜小了!");
        }
        if (cai == winNum) {
            System.out.println("恭喜你,猜对了!");
            break; //猜对直接跳出循环
        }
    }
    if(lunshu>10){
        System.out.println("没抽奖次数了!请进行续费");
        return;    
    }
}

实际控制台输出:

请输入中奖数数字:
50
-----------进行第1轮猜数-----------
请输入你要猜的数字:
10
猜小了!
-----------进行第2轮猜数-----------
请输入你要猜的数字:
60
猜大了!
-----------进行第3轮猜数-----------
请输入你要猜的数字:
40
猜小了!
-----------进行第4轮猜数-----------
请输入你要猜的数字:
50
恭喜你,猜对了!

解析:

  • 总共每个人十轮抽奖。
  • 每次抽奖需要进行抽奖数统计,然后就是核对抽奖数是否猜对了。
  • 重点:与抽奖数核对正确,此刻就不需要再进行抽奖轮询了。所以break,进行跳出循环结构。
  • 若十次次数用完了,提醒用户没有抽奖次数。

       如上演示,你就能理解了,break()语句起的就是这个作用,在符合约定的情况下,break直接循环,就如上方抽奖核对中了了,就要立马跳出此次循环,终止循环,继续执行循环体外的代码,判断如果十次次数都用光了,输出“没抽奖次数!请进行续费”。

三、continue语句

       有时强迫一个循环提早结束此次循环是有用的,也就是,你可能想要继续运行整个循环,但是要忽略这次重复剩余的循环体的语句,这种情况,java就为此提供了一种语句--continue。其实,continue的诞生就是对break语句的一个补充。

       continue语句类似于break语句。但它只能出现在循环体中,它与break语句的区别在于:continue并不是终止循环,而是跳过此次循环,也就是跳过当前的循环,继续进入下一次的循环。

简单来说,continue是忽略循环语句的单次循环。

**注意:**continue 语句只能用在for循环、while 语句或者 foreach 语句的循环体之中,在这之外的任何地方使用它都会引起语法错误,是除了这三种情况之外都不能使用。

下面我给大家举个例子,结合实际场景:

请打印出所给的数组里头分别是偶数、奇数的个数。

/**
 * 计算所给出的数组里头,是偶数的个数,奇数的个数
 */
public static void printNum() {
    int[] nums = {1, 5, 23, 44, 66, 88, 67, 77, 99};
    //统计偶数个数
    int total1 = 0;
    //统计奇数个数
    int total2 = 0;
    for (int num : nums) {
        if (num % 2 == 0) {
            total1 += 1;
            continue;//跳过此次循环
        }
        if (num % 2 != 0) {
            total2 += 1;
            continue;//跳过此次循环
        }
    }
    System.out.println("偶数个数为:" + total1);
    System.out.println("奇数个数为:" + total2);}

实际运行结果:

偶数个数为:3
奇数个数为:6

对上述方法进行解析:

       为何要加continue语句,目的在你如果循环到数字如果是偶数,continue直接进入下一轮的数字判断,而不是接着走下边的if(num%2 !=0)判断,这样就是在提高计算性能,相比你不加好所以一般进行统计,有多重判断的时候,如果只符合一种情况,那记得把continue语句加上!这对于大数据、海量数据而言,真的有性能上的提升。

三、课后作业

       为了平衡大家的学习任务量,所以会有课后作业练习,然后会在下一期进行重点解析,一来为了帮大家巩固本期学习内容,二来帮大家加强练习,早日掌握该知识点。

第一题:统计一段英语句子中带有多少个“o”的字符。

英语句子:Whatever is worth doing is worth doing well。

提示:取第几位的字母可以按如下进行获取。

public static void countO(){

    StringBuffer letters = new StringBuffer("Whatever is worth doing is worth doing well. ");
    //取第0为的字母
    char o = letters.charAt(0);
}

第二题:判断闰年平年并且输出某月的天数

提示:

       所谓闰年,就是指 2 月有 29 天的那一年。闰年同时满足以下条件:

  • 年份能被 4 整除。
  • 年份若是 100 的整数倍,须被 400 整除,否则是平年。
//判断是否是闰年
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
    System.out.println(year + "闰年");
}

第三题:打印九九乘法表。

       以上的提示已经够明显啦,所以剩下的大家就好好想想,其实都很简单的哦,就运用咱们目前所学知识即可解决。加油哦。

四、结尾

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

       ... ...

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!

---------------------------------------------------------------------

⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。

⭐️若有疑问,就请评论留言告诉我叭。

---------------------------------------------------------------------