前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >return跳出循环[通俗易懂]

return跳出循环[通俗易懂]

作者头像
全栈程序员站长
发布2022-08-24 09:21:06
3.2K0
发布2022-08-24 09:21:06
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

return语句用于终止函数的执行或退出类的方法,并将控制权返回该方法的调用者。如果这个方法带有返回类型,return 语句就必须返回这个类型的值;如果这个方法没有返回值,可以使用没有表达值return;

该方法用处之一:循环找出条件/答案,如果循环结束答案没有找到就执行下面的语句 如果找到答案,那就直接将方法抛弃。 可以这么理解:一个女人和男人谈恋爱,一心只为钱,而且是不停的找钱 1.当钱到手,直接拔吊无情。 2.(等方法结束没有找到,这个时候钱才到手但是那个女人已经和你结束了)

与return 能够解决同样问题的是设置中间变量 boolean = true; // 当循环结束条件/答案没有找到就可以通过if判断是否中间量是否为真,真代表着可以执行下面的行为 在循环中找到答案就可以设置boolean为false,这样就可以使得if判断为false下面的方法不能执行。

这个方法可以这么理解一个女人和男人谈恋爱,一心只为钱,而且是不停的找钱,当钱到手就直接拔吊无情,但是她会先通知她的姘头钱到手了,然后这个姘头再去找你说你不能和她在一起了,要不然要你好看。 等方法结束没有找到的话,女人和她的姘头早已离去,这个时候你的方法会运行。

这两个方法明显可以看出来,第二种方法多了一个中间值,也就是多了很多判断,实际开发过程中,这样会耗费内存,但是如果下面存在必须做的事的话,那使用第二种也是可以的,但是的但是finally语句块不管什么情况都会执行,这样也解决一部分必须完成的需求。

但是我们要注意,还有一种可能如果结果找到了依旧想要完成下面的工作,没有找到依旧执行下面的任务的情景时就需要一个中间变量了。

第一种方法

代码语言:javascript
复制
// 判断用户名是否存在
		for (int i = 0; i < raf.length() / 100; i++) {
				raf.seek(i * 100);
				byte[] data = new byte[32];
				raf.read(data);
				String name = new String(data, "UTF-8").trim();
				System.out.println("name:" + name);
				if (name.equals(username)) {
					System.out.println("该用户名已经存在");
					File haveUser = new File					("./webapps/myweb/have_user.html");
					response.setEntity(haveUser);
					return;  //直接终止类的进行
				}

			}

第二种方法

代码语言:javascript
复制
try (RandomAccessFile raf = new RandomAccessFile("user.dat", "rw");) {
			boolean flag = true;
			// 判断用户名是否存在
			for (int i = 0; i < raf.length() / 100; i++) {
				raf.seek(i * 100);
				byte[] data = new byte[32];
				raf.read(data);
				String name = new String(data, "UTF-8").trim();
				System.out.println("name:" + name);
				if (name.equals(username)) {
					System.out.println("该用户名已经存在");
					File haveUser = new File									("./webapps/myweb/have_user.html");
					response.setEntity(haveUser);
					flag =false;
				
				}

			}
			if(flag){
			raf.seek(raf.length());
			// 写入用户名
			byte[] data = username.getBytes("UTF-8");
			data = Arrays.copyOf(data, 32);
			raf.write(data);

			// 写入密码
			data = password.getBytes("UTF-8");
			data = Arrays.copyOf(data, 32);
			raf.write(data);

			// 写昵称
			data = nickname.getBytes("UTF-8");
			data = Arrays.copyOf(data, 32);
			raf.write(data);

			// 写年龄
			raf.writeInt(age);

			// 响应注册成功的页面给客户端

			File success = new File("./webapps/myweb/reg_success.html");
			response.setEntity(success);
			}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139973.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月7,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档