return跳出循环

  • Post author:
  • Post category:其他


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

该方法用处之一:循环找出条件/答案,如果循环结束答案没有找到就执行下面的语句

如果找到答案,那就直接将方法抛弃。

可以这么理解:一个女人和男人谈恋爱,一心只为钱,而且是不停的找钱

1.当钱到手,直接拔吊无情。

2.(等方法结束没有找到,这个时候钱才到手但是那个女人已经和你结束了)

与return 能够解决同样问题的是设置中间变量

boolean = true; //

当循环结束条件/答案没有找到就可以通过if判断是否中间量是否为真,真代表着可以执行下面的行为

在循环中找到答案就可以设置boolean为false,这样就可以使得if判断为false下面的方法不能执行。

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

等方法结束没有找到的话,女人和她的姘头早已离去,这个时候你的方法会运行。

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

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

第一种方法

// 判断用户名是否存在
		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;  //直接终止类的进行
				}

			}

第二种方法

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);
			}



版权声明:本文为IT_Octopus原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。