break
break 关键字通常用于中断循环或 switch 语句,它在指定条件下中断程序的当前流程。如果是内部循环,则仅中断内部循环。
可以将 break 关键字用于所有类型循环语句中,比如说 for 循环,while 循环,以及 do-while 循环。
来画个流程图感受一下:
用在 for 循环中的示例:
for (int i = 1; i <= 10; i++) { if (i == 5) { break; } System.out.println(i); }
用在嵌套 for 循环中的示例:
for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { if (i == 2 && j == 2) { break; } System.out.println(i + " " + j); } }
用在 while 循环中的示例:
int i = 1; while (i <= 10) { if (i == 5) { i++; break; } System.out.println(i); i++; }
用在 do-while 循环中的示例:
int j = 1; do { if (j == 5) { j++; break; } System.out.println(j); j++; } while (j <= 10);
continue
当我们需要在 for 循环或者 (do)while 循环中立即跳转到下一个循环时,就可以使用 continue 关键字,通常用于跳过指定条件下的循环体,如果循环是嵌套的,仅跳过当前循环。
来个示例:
public class ContinueDemo { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { if (i == 5) { // 使用 continue 关键字 continue;// 5 将会被跳过 } System.out.println(i); } } }
输出:
1
2
3
4
6
7
8
9
10
5 真的被跳过了。
再来个循环嵌套的例子。
public class ContinueInnerDemo { public static void main(String[] args) { for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { if (i == 2 && j == 2) { // 当i=2,j=2时跳过 continue; } System.out.println(i + " " + j); } } } }
打印出什么玩意呢?
1 1
1 2
1 3
2 1
2 3
3 1
3 2
3 3
“2 2” 没有输出,被跳过了。
再来看一下 while 循环时 continue 的使用示例:
public class ContinueWhileDemo { public static void main(String[] args) { int i = 1; while (i <= 10) { if (i == 5) { i++; continue; } System.out.println(i); i++; } } }
输出:
1
2
3
4
6
7
8
9
10
注意:如果把 if 条件中的“i++”省略掉的话,程序就会进入死循环,一直在 continue。
最后,再来看一下 do-while 循环时 continue 的使用示例:
public class ContinueDoWhileDemo { public static void main(String[] args) { int i=1; do{ if(i==5){ i++; continue; } System.out.println(i); i++; }while(i<=10); } }
输出:
1
2
3
4
6
7
8
9
10
注意:同样的,如果把 if 条件中的“i++”省略掉的话,程序就会进入死循环,一直在 continue。
五、Java 包的简介
在 Java 中,我们使用 package(包)对相关的类、接口和子包进行分组。这样做的好处有:
使相关类型更容易查找
避免命名冲突,比如说 com.itwanger.Hello 和 com.itwangsan.Hello 不同
通过包和访问权限控制符来限定类的可见性
01、创建一个包
package com.itwanger;
可以使用 package 关键字来定义一个包名,需要注意的是,这行代码必须处于一个类中的第一行。强烈建议在包中声明类,不要缺省,否则就失去了包结构的带来的好处。
包的命名应该遵守以下规则:
应该全部是小写字母
可以包含多个单词,单词之间使用“.”连接,比如说 java.lang
名称由公司名或者组织名确定,采用倒序的方式,比如说,我个人博客的域名是 www.itwanger.com,所以我创建的包名是就是 com.itwanger.xxxx。
每个包或者子包都在磁盘上有自己的目录结构,如果 Java 文件时在 com.itwanger.xxxx 包下,那么该文件所在的目录结构就应该是 com->itwanger->xxxx。
02、使用包
让我们在名为 test 的子包里新建一个 Cmower 类:
package com.itwanger.test;
public class Cmower {
private String name;
private int age;
}
如果需要在另外一个包中使用 Cmower 类,就需要通过 import 关键字将其引入。有两种方式可供选择,第一种,使用 * 导入包下所有的类:
import com.itwanger.test.*;
1
第二种,使用类名导入该类:
import com.itwanger.test.Cmower;
Java 和第三方类库提供了很多包可供使用,可以通过上述的方式导入类库使用。
package com.itwanger.test;
import java.util.ArrayList;
import java.util.List;
public class CmowerTest {
public static void main(String[] args) {
List<Cmower> list = new ArrayList<>();
list.add(new Cmower());
}
}
03、全名
有时,我们可能会使用来自不同包下的两个具有相同名称的类。例如,我们可能同时使用 java.sql.Date 和 java.util.Date。当我们遇到命名冲突时,我们需要对至少一个类使用全名(包名+类名)。
List<com.itwanger.test.Cmower> list1 = new ArrayList<>();
list.add(new com.itwanger.test.Cmower());
