return、break与continue的区别
前言
在上一篇文章中,壹哥给大家介绍了while、do-while两种循环结构,并且给大家总结了两种循环的区别。实际上,我们在利用循环执行重复操作的过程中,还存在着另一个需求:如何中止,或者说提前结束一个循环?比如我们正在循环输出10000以内的数字,这时因为触发了某个条件,想提前中止这个循环操作该怎么办?所以今天壹哥就给大家讲解一下,如何在java代码中返回一个结果,如何结束和跳出一个循环。
------------------------------前戏已做完,精彩即开始----------------------------
全文大约【2800】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富案例及配图,让你更好地理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考......
一. break
1. 作用
break关键字可以用于for、while、do-while及switch语句中,用来跳出整个语句块,结束当前循环的执行。另外我们要特别注意,break语句总是跳出自己所在的那一层循环。当两个for循环嵌套时,如果break语句位于内层的for循环,它只会跳出内层的for循环,但不会跳出外层的for循环。
2. 语法
break的用法很简单,我们在之前学习switch时就已经使用过了。一般就是在循环或switch语句中编写如下一条语句:
break;
比如我们使用for循环计算从1累加到100的和时,在循环内部,我们可以使用if判断,当i==50就提前利用break关键字结束循环。因此,break经常会配合if语句使用。
3. 案例
3.1 案例一
break会跳出当前for循环。当break执行后,当前整个for循环都会结束执行。
public class Demo01 {
public static void main(String[] args) {
//break关键字
//需求:从1累加到100,找到累加到哪个数时,就使得sum和大于888
// 定义变量保存总和
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum = sum + i;
if (sum > 888) {
System.out.println("累加到"+i+"时,sum和就大于888");
// 结束当前循环
break;
//这里的语句执行不到,编译阶段就会报错
//System.out.println("能执行吗??");
}
//这里的语句可以执行,当break跳出循环后,就不会再继续执行
System.out.println("能执行吗??"+i);
}
}
}
大家要注意,我们不能直接在break后面跟着其他语句,否则在编译阶段就会出现”Unreachable code“,如下图所示:
3.2 案例二
需求:将输入的内容进行输出,如果输入"886"就结束当前聊天。
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
//break关键字
Scanner sc = new Scanner(System.in);
while(true){
String word = sc.next();
if(word.equals("886")){
//跳出当前循环
break;
}
//输出内容
System.out.println(word);
}
}
}
二. continue
1. 作用
continue适用于各种循环结构中,不能用于其他地方,用于跳过本次循环,执行下一次循环。break可以跳出当前循环,即整个循环都不会执行了。而与break不同,continue是提前结束本次循环,但会继续执行下一次的循环。在多层嵌套的循环中,continue也可以通过标签指明要跳过的是哪一层循环,并且同样是只结束自己所在的循环。
2.语法
continue的用法很简单,在循环结构中直接使用如下语句即可:
continue;
3. 案例
3.1 案例一
需求:输出100以内,所有不是3的倍数的整数。使用continue结束当前循环,继续下一次循环。
public class Demo03 {
public static void main(String[] args) {
//continue关键字
//案例:输出100以内,所有不是3的倍数的整数
for(int i = 1; i <= 100 ; i++){
if(i % 3 == 0){
//结束本次循环,继续执行下次循环,并不会结束整个循环,直到完成整个循环
continue;
}
System.out.println(i);
}
}
}
3.2 案例二
需求:将输入的内容进行输出,如果输入"886"就结束当前聊天。如果输入了敏感词汇,则用“***”替代显示。
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
//continue关键字
//需求:将输入的内容进行输出,如果输入"886"就结束当前聊天。如果输入了敏感词汇,则用“***”替代显示
Scanner sc = new Scanner(System.in);
while(true){
String word = sc.next();
if(word.equals("886")){
//跳出整个循环
break;
}
if(word.equals("WC")||word.equals("SB")){
System.out.println("***");
//中止本次循环,继续下一次循环
continue;
}
System.out.println(word);
}
}
}
4. 多层循环嵌套时的跳转
当多层循环嵌套时,内层循环可以使用外层循环中的变量。外层循环每循环一次,内层循环都会完整的执行完内层循环的所有次数。break/continue只会控制当前的循环,当多层循环嵌套时,为了便于控制,我们可以通过给循环设定标签的形式来进行控制。
4.1 语法
多层循环嵌套时,带有标签的语法结构如下:
label1: { ……
label2: { ……
label3: { ……
break label2;
}
}
}
当有多层循环嵌套,我们可以给每一次循环起个标签名称,名称随意,只要符合java里的标识符命名规则即可。然后结合break或者continue就可以结束当前或本次循环。
4.2 案例
这里是多层循环嵌套时带有标签的案例,供大家参考如下:
public class Demo07 {
public static void main(String[] args) {
//多层循环嵌套
//打印5行5列的矩形,用 * 表示
label01:for(int i = 1 ; i <= 5 ;i++){ //控制行
label02:for(int j = 1 ; j <= 5 ; j++){//控制列
System.out.print(" * ");
//当执行到第3列时,提前跳出循环
if(j==3) {
break label02;
//continue label02;
}
}
//进行换行
System.out.println();
}
}
}
三. return
关于return关键字,今天壹哥先简单介绍以后,后面我们在学习Java的”方法“时会详细讲解!
1. 作用
return并不是专门用来结束循环的关键字,它可以用来结束一个方法或循环。当一个方法执行到return语句时,该方法就会被结束。与break和continue不同的是,return是直接结束整个方法,不管这个return处在多少层的循环之内。
2. 语法
return关键字的基本语法如下:
访问修饰符 返回值类型 方法名(参数...){
//方法体
//注意:这里返回值的类型必须与方法上声明的返回值类型一致!
return 返回值;
}
3. 案例
因为return的用法,主要是和java里的”方法“有关系,所以壹哥在这里先简单给大家展示两个基本的案例,以后我们再详细学习方法和return的内容。
3.1 案例一
在方法中返回值指定类型的结果。
public class Demo05 {
public static void main(String[] args) {
// return关键字
//调用定义的方法,并获取返回结果
String result = sayHello();
System.out.println("result="+result);
}
//定义一个带有String类型返回值的方法
//访问修饰符 返回值类型
public static String sayHello() {
//本方法中只能返回String类型
return "Hello,壹壹哥!";
}
}
3.2 案例二
return也可以在循环中使用,用于结束整个循环。
public class Demo06 {
public static void main(String[] args) {
// return关键字
for (int i = 1; i <= 10; i++) {
for (int j = 1; j <= 10; j++) {
if (i + j == 10) {
//结束整个循环的执行,无论循环的层次
return;
}
System.out.println("i = " + i + ",j = " + j + ",i + j = " + (i + j));
}
}
//这里执行不到
System.out.println("循环之后的语句");
}
}
-----------------------------正片已结束,来根事后烟----------------------------
四. 结语
至此,壹哥就把return、break、continue这三个关键字给大家讲解完毕了,现在你知道它们三者的用法及其区别了吗?接下来壹哥就给大家对这几个关键字进行一下总结。
1. break与continue的对比
1.1 特点不同
● break语句可以跳出当前循环;
● break语句通常配合if来使用,在满足条件时可以提前结束整个循环;
● break语句总是跳出最近的一层循环;
● continue语句可以提前结束本次循环;
● continue语句也可以配合if语句,在满足条件时提前结束本次循环。
1.2 使用场合不同
● break可用于switch结构和循环结构中;
● continue只能用于循环结构中。
1.3 作用不同
● break语句用于终止某个循环,程序跳转到循环块外的下一条语句中;
● continue语句用于跳出本次循环,进入到下一次循环。
2. continue、break、return三者的对比
● break:结束所在的循环;
● continue:跳过本次循环,继续下一次循环;
● return:结束整个方法。
以上就是return、break、continue的全部重点内容,大家后期好好消化。
五. 今日作业
第一题
使用while循环,打印输出10~100之间所有能同时被5和9整除的整数。
return、break与continue的区别的更多相关文章
- return、break、continue的区别
一.定义 return:语句用于终止当前方法运行,返回到调用该方法的语句处.如有返回值,则在return后面提供相应的返回值. break:其主要用于循环语句和switch语句,其作用均是强行终止语句 ...
- for循环中break与continue的区别
1.for循环 for循环是更加简洁的循环语句,大部分情况下,for循环可以代替while循环.do-while循环. for循环的格式为: for( 初始语句 ; 执行条件 ; 增量 ){循环体}执 ...
- go语言基础之break和continue的区别
1.break和continue的区别 在循环里面有两个关键操作break和continue,break操作是跳出当前循环,continue是跳过本次循环. 2.break 备注:break可⽤于fo ...
- for循环及break和continue的区别
1.For循环 格式: for( 初始语句 ; 执行条件 ; 增量 ){ 循环体 } 执行顺序:1.初始语句 2.执行条件是否符合 3.循环体 4.增加增量 初始化语句只在循环开始前执行一次,每次 ...
- python中break和continue的区别
python中break和continue的区别 break和continue 1.break 意思为结束循环 例: i = 0 while i<10: i+=1 if ...
- break和continue 的区别
区别 break和continue都可在循环语句里面使用,也都可以控制外层的循环.但是continue只能在循环语句里面使用,break也可以使用在switch语句里面. break具体作用在循环语句 ...
- for循环的简介及break和continue的区别
break和continue都是用来控制循环结构的,主要是停止循环. 1.break 有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止. 这是我们可以使用break来完成. ...
- 循环内的switch中break和continue使用区别
首先看下break和continue的使用方法. break语句在循环和switch语句中使用,用于终止最近的封闭代码块,如果在嵌套循环中,则只终止最近的循环. continue语句在循环中使用,不能 ...
- Java中goto和break、continue实现区别
goto 关键字很早就在程序设计语言中出现.事实上,goto 是汇编语言的程序控制结构的始祖:“若条件 A,则跳到这里:否则跳到那里”.若阅读由几乎所有编译器生成的汇编代码,就会发现程序控制里包含了许 ...
- return, break and continue
最近学习多线程看到了一个描述不太准确的地方,让我对return break continue个语句的不同开始详细了解了一番,之前只是知道怎么使用,不是很深入研究,基本遇到了跳出就用return来解决全 ...
随机推荐
- Python 用exec来获取字符串所对应的字典
Python 用exec来获取字符串所对应的字典 Python exec 问题的提出 想要遍历两个结构相似的字典,但是不想采用字典内嵌套字典的方式,所以想要通过一个列表,该列表包含字典名称.也就是通过 ...
- <连城诀>剧情大纲+随笔
--剧情还是偷个懒,从百度百科抄袭一下,红色字体为补充和说明 在湘西沅陵南郊的麻溪乡下,三间小屋之前的晒谷场上,隐居此处多年的剑术名家"铁索横江"戚长发,看着徒弟狄云与女儿戚芳 ...
- 配置SASS过程
1.首先在电脑上安装Node.js 2.其次在命令行配置npm,命令:npm init.运行后会创建一个package.json文件 3.然后输入命令配置npm中可以使用SASS的包,命令:npm i ...
- Java 获取【.jar】文件里的资源文件
获取jar文件里的图片等文件时,会发现使用相对路径不行了. 因为打包后的jar文件,在获取路径时稍有不同. 下面是获取jar文件中图片的例子: 1 Resource[] resources = new ...
- AS3.0和php数据交互POST方式
AS3.0和php数据交互POST方式首先打开flash建立一个as3.0的文件拖 textarea和button组建到舞台上分别给两个组件命名:txtcontent和addcontent然后点第一帧 ...
- zynq 中断
#include "stdio.h"#include "xparameters.h"#include "xgpiops.h"#include ...
- Linux中/etc目录下passwd和shadow文件
/etc/passwd介绍 首先,通过cat /etc/passwd 来查看文件/etc/passwd中内容: root:x:0:0:root:/root:/bin/bash daemon:x:1:1 ...
- 如何简单使用Git
Git基本功能 Git基本功能 在具体介绍Git能做什么之前,先来了解下Git里的四个角色: workspace: 本地的工作空间. index:缓存区域,临时保存本地改动. local reposi ...
- Ubuntu常用命令(二)
clash 启动 #.clash -d . sudo /home/lizhenyun/clash/clash -d /home/lizhenyun/clash/ deb包安装 sudo dpkg -i ...
- NOIP2012普及组
T2]寻宝 读懂题目!! 是逆时针,第几个有钥匙的房间,还有能够直接上楼的是作为第一个有钥匙的房间,而不是就从这里直接上楼了 #include<iostream> #include< ...