认识java
java介绍
java是前Sun公司(现甲骨文股份有限公司)于1995年推出的高级编程语言,java技术可以应用在几乎所有类型和规模的设备上,小到计算机芯片,蜂窝电话,大到超级计算机,无处不在。
什么是程序
我们可以把程序当做是一个到银行取钱的过程
(1)带上存折/银行卡到银行
(2)取号排队
(3)将存折或银行卡递给银行工作人员并告知取款数额
(4)输入取款密码
(5)银行工作人员办理取款事宜
(6)拿到钱,带上存折/银行卡
(7)离开银行
开发java程序的步骤
1.编写原程序
文件名.java就是一个源程序,java源程序文件使用后辍.java作为扩展名
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pP6FcbPh-1569547747882)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569309968938.png)]
2.编译
程序编译后会获得一个扩展名为.class的文件,称为字节码文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7eULtHcU-1569547747883)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569312281011.png)]
3.运行
在java平台上运行生成的字节码文件,就可以看到运行结果
基本框架
public class Test {
public static void main(String[] args) {
System.out.println(); //输出语句
java编码规范
编码规范可以增加可读性,使软件开发和维护更加方便,这些规范是一个程序员应该遵守的基本规则,是行业内人们都默守的做法
现在把以下代码做一些修改,去掉 class 前面的 public,再次运行程序,仍然能够得到想要的结果,这说明程序没有错误,那么为什么还要用 public 呢?这就是一种编码规范
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xj4iaw6E-1569547747883)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1568950555654.png)]
java程序的注释
1.单行注释
如果文字较少,放在一行中,就可以使用单行注释,单行注释通常用在代码行之间,或者一行代码的后面用来说明某一块代码的作用
// 后面的文字都是注释
public class Test{
public static void main(String[]args){
//输出信息到控制台
System.out.println("Hello World!!!");
}
}
2.多行注释
多行注释以 / * 开头,以 * / 结尾,在 / * 和 */之间的内容都是注释
/*
* Hello World.java
*2019-9-9
*第一个java程序
*/
变量`数据类型和运算符
变量和数据类型
1.八大基本数据类型
int 整数 char 字符
long 整数 String 字符串
double 小数 boolean 判断
byte 小数 false 字节
2.变量声明及使用
(1)估计数据的类型在内存中分配一个合适的房间,并给它命名就是变量名
(2)将数据存储到这个房间中
(3)从房间中取出数据使用,可以通过变量名来获得
例如:int a=999;
此时在控制台输出a,就等于输出了999
public class Test {
public static void main(String[] args) {
int a=999;
System.out.println(a);
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J6zsZqwr-1569547747883)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1568945709625.png)]
3.语法
数据类型 变量名=值;
变量命名规则
序号 | 条件 | 合法变量名 | 非法变量名 |
---|---|---|---|
1 | 变量必须以字母,下划线“_”或“$”符号开头 | _myCar | *myvariablel //不能以 * 开头 |
2 | 变量可以包括数字,但不能以数字开头 | score1 | 9variable //不能以数字开头 |
3 | 除了“_”或“$”符号以外,变量名不能包括任何特殊字符 | $myCar | variable% //不能包括% |
a+b //不能包括+ | |||
4 | 不能使用 java 语言的关键字,如 int,class,public 等等 | graph1_1 | t1-2 //不能包括连字符 |
My Variable //不能包括空格 |
赋值运算符
int a=888;
使用“=”将数值888放入变量a的存储空间中,“=”称为赋值运算符
例如:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J77yNt3u-1569547747884)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1568979884934.png)]
算术运算符
运算符 | 说明 | 举例 |
---|---|---|
+ | 加法运算符,求操作数的和 | 5+3=8 |
- | 减法运算符,求操作数的差 | 5-3=2 |
* | 乘法运算符,求操作数的乘积 | 5*3=15 |
/ | 除法运算符,求操作数的商 | 5/3=1 |
% | 取余法运算符,求操作数相除的余数 | 5%3=2 |
boolean类型
boolean类型的值
值 | 说明 |
---|---|
true | 真 |
false | 假 |
关系运算符
关系运算符 | 声明 | 举例 |
---|---|---|
> | 大于 | 99>100,结果为false |
< | 小于 | 大象的寿命<乌龟的寿命,结果为trus |
>= | 大于等于 | 你的考试成绩>=200分,结果为false |
<= | 小于等于 | 每次的考试成绩<=60,结果为false |
== | 等于 | 地球的大小=篮球的大小,结果为false |
!= | 不等于 | 水的密度!=铁的密度,结果为trus |
选择结构
选择结构,简单来说就是做一个选择,满足某个条件,就去做某个事情
i f 选择结构
语法:
i f (条件) {
代码块 //条件成立后要执行的代码,可以是一条语句,也可以是一组语句
}
i f 选择结构流程图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tt5OTRvb-1569547747884)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569154466962.png)]
示例代码:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.print("请输入唐某的java成绩:");
int a=in.nextInt();
if(a>80) { //条件满足80分则输出下面代码
System.out.println("很好,奖励一个大嘴巴子!");
}
}
}
运行效果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2FFIY7Ga-1569547747885)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569156825650.png)]
符号汇总
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NiGZsZyw-1569547747885)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569154695490.png)]
常用逻辑运算符
运算符 | 汉语名称 | 表达式 | 说明 | 举例 |
---|---|---|---|---|
&& | 与,并且 | 条件1&&条件2 | 两个条件同时为真,则结果为真,两个条件有一个为假,则结果为假 | 具有选举的条件:年满18周岁&&中国公民,两个条件都为真则具有选举权,有一个条件为假,则不具有选举权 |
|| | 或,或者 | 条件1||条件2 | 两个条件有一个为真,则结果为真,两个条件同时为假,则结果为假 | 从中国去美国的方式:乘坐飞机||乘船,两个条件有一个为真,就可以去美国,要是都为假,则去不了美国 |
! | 非 | !条件 | 条件为真时,结果为假,条件有为假时,结果为真 | 成为优秀软件工程师的条件:!偷懒 |
i f — else选择结构
语法:
i f (条件) {
//代码块1
} else {
//代码块2
}
i f — else 选择结构流程图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F9aNr0GB-1569547747886)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569156204316.png)]
示例代码:
public class Test {
public static void main(String[] args) {
int a=90;
if(a>98) {
System.out.println("很好,奖励一个大嘴巴子!");
}else {
System.out.println("很好,奖励十个大嘴巴子!");
}
}
}
运行效果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-igcnQX9J-1569547747886)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569157393303.png)]
多重 i f 选择结构
语法:
i f (条件1) {
//代码块1
} else i f (条件2) {
//代码块2
} else {
//代码块3
}
示例代码:
public class Sl5 {
public static void main(String[]args){
int score=70; //考试成绩
if(score>=80){ //考试成绩>=80
System.out.println("良好");
}else if (score>=60){ //80>考试成绩>=60
System.out.println("中等");
}else{ //考试成绩<60
System.out.println("差");
}
}
}
多重 i f 选择结构流程图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xWMBxUJf-1569547747887)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569219177513.png)]
嵌套i f 选择结构
语法:
i f (条件1) {
i f (条件2) {
//代码块1
} else {
//代码块2
}
} else {
//代码块3
}
嵌套i f 选择结构流程图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RCi74YTK-1569547747887)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569219767915.png)]
switch 选择结构
语法:
switch(表达式) {
case 常量1:
//代码块1;
break;
case 常量2:
//代码块2;
break;
…
default:
//代码块n
break;
}
示例代码:
public class Test {
public static void main(String[]args){
int a=1;
switch (a){
case 1:
System.out.println("参加麻省理工大学组织大1个月夏令营");
break;
case 2:
System.out.println("奖励惠普笔记本一部");
break;
case 3:
System.out.println("奖励移动硬盘一个");
break;
default:
System.out.println("没有任何奖励");
break;
}
}
}
运行效果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xbEien1C-1569547747888)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569220441543.png)]
选择结构总结
基本 i f 选择结构:可以处理单一或组合条件的情况
i f —else 选择结构: 可以处理简单的条件分支情况,这种形式结构简单,但在实际开发中使用非常频繁
多重 i f 选择结构: 可以处理复杂的条件分支情况,多重 i f 选择结构在解决需要判断的条件是连续的区间时有很大的优势
嵌套i f 选择结构:在 i f 选择结构中又包含一个或多个i f 选择结构的情况,这种结构一般用于较为复杂的流程图控制中
switch 选择结构:当需要多重分支并且条件判断是等值判断的情况下,使用switch选择结构代替多重 i f 选择结构会更简单,代码结构更清晰易读
循环结构
什么是循环结构
循环简单来说,就是重复做一件事情,比如:打印100份试卷,在400m跑道上跑1000m,抄50遍代码
都是一件事情重复去做,这就是循环
while 循环结构
语法:
while(循环条件) {
///循环操作
}
示例代码:
public class Test {
public static void main(String[] args) {
int a=1; //从1开始
while (a<=100) { //循环条件到100结束
System.out.println("好好学习!");
a=a+1;
}
}
}
运行效果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5KKEFI0s-1569547747888)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569291240346.png)]
while 循环结构流程图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N7zmp2rZ-1569547747889)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569291020515.png)]
while循环结构的执行顺序:
(1)声明并初始化循环变量
(2)判断循环条件是否满足,满足则执行循环操作,否则退出循环
(3)执行完循环操作后,再次判断循环条件,决定继续执行循环或退出循环
do-while循环结构
语法:
do {
//循环操作
} while (循环条件);
示例代码:
public class Test {
public static void main(String[] args) {
int a=1;
do {
System.out.println("好好学习!");
a++;
}while (a<=100);
}
}
运行效果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y9G7ZcSK-1569547747889)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569292240926.png)]
do-while循环结构流程图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KRhtd6j6-1569547747889)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569292075034.png)]
for循环结构
什么是for循环结构:
循环语句的主要作用是反复执行一段代码,直到满足一定的条件为止,可以把循环结构分成4个部分
初始部分:设置循环的初始状态,如设置记录循环次数的变量 i 为0
循环体:重复执行的代码,即输出"好好学习,天天向上"!
送代部分:下一次循环开始前要执行的部分,在while 循环结构中它作为循环体的一部分,如使用" i ++;"进行循环次数的累加
循环条件:判断是否继续循环的条件,如使用" i<100"判断循环次数是否已经达到100,
语法:
for (表达式1;表达式2;表达式3) {
//循环体
}
for循环结构中三个表达式的含义:
表达式 | 形式 | 功能 | 举例 |
---|---|---|---|
表达式1 | 赋值语句 | 循环结构的初始部分,为循环变量赋初值 | int i=1 |
表达式2 | 条件语句 | 循环结构的循环条件 | i<100 |
表达式3 | 赋值语句,通常使用++或–运算符 | 循环结构的送代部分,通常用来修改循环变量的值 | i++ |
for循环结构执行的顺序:
(1)执行初始部分 (int i=0;)
(2)进行循环条件判断(i<100;)
(3)根据循环条件判断结果,如果为true,则执行循环体,如果为false,则提出循环,步骤(4)和步骤(5)都不会执行
(4)执行送代部分,改变循环变量值(i++)
(5)依次重复步骤 (2)~步骤(4),直到提出for循环结构
示例代码:
import java.util.*;
public class Test {
public static void main(String[]args){
int score; //每门课的成绩
int sum = 0; //成绩之和
double avg = 0.0; //平均分
Scanner input = new Scanner(System.in);
System.out.print("输入学生姓名:");
String name = input.next();
for(int i = 0; i < 5; i++){ //循环五次,录入五门课程的成绩
System.out.println("请输入5门功课中第"+(i+1)+"门课的成绩:");
score = input.nextInt(); //录入成绩
sum = sum + score; //计算成绩和
}
avg = (double)sum / 5; //计算平均分
System.out.println(name + "的平均分是:" + avg);
}
}
运行效果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gf9svkYc-1569547747890)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569294261634.png)]
break 语句的使用
在switch 选择结构中,break 语句使用终止 switch 语句中的某个分支,使程序跳到 switch 选择结构的下一条语句
for(int i = 0;i < 10; i++){
//跑400m
if(不能坚持){
break; //退出比赛
}
}
这就是break语句的功能
continue 语句的使用
在循环结构中的 i f 语句中使用 break 语句退出循环,但是,可能有时会遇到这样的问题,在某次循环中,不执行完所有的循环体,就跳出本次循环,开始执行下一次循环
示例代码:
for(int i = 0;i < 10; i++){
//跑400m
if(不口渴){
continue; //不喝水,继续跑
}
//接过水壶,喝水
}
如果口渴,则执行"接过水壶,喝水;",如果不口渴,则执行continue 语句;continue 后面的语句"接过水壶,喝水"将不再被执行,之后进入下一次循环
数组
Java中的数组
在Java中,数组就是一个变量,用于将相同数据类型的数据存储在内存中。数组中的每一个数据元素都属于同一数据类型例如, 全班30个学员的成绩都是整数,就可以存储在一个整数数组里面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2IhyuNAa-1569547747890)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569426703180.png)]
数组的组成元素
(1) 标识符:首先和变量一样,在计算机中,数组也要有一个名称,称为标识符,用于区分不同的数组
(2)数组元素:当给了数组名称,即数组标识符后,要向数组中存放数据,这些数据就称为数组元素
(3) 数组下标: 在数组中,为了正确地得到数组的元素.需要对它们进行编号,这样计算机才能根据编号去存取,这个编号就称为数组下标
(4) 元素类型: 存储在数组中的数组元素应该是同一数据类型,如可以把学员的成绩存储在数组中,而每一个学员的成绩可以用整型变量存储,因此称它的元素类型是整型
数组的基本结构:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UeXOR2bL-1569547747891)(C:\Users\Administrator\Documents\Tencent Files\2769272014\FileRecv\MobileFile\IMG_20190926_000234.jpg)]
使用数组的步骤
(1)声明数组:
语法:
数据类型 [ ] 数组名;
或者
数据类型 数组名 [ ];
(2)分配空间:
语法:
数组名 = new 数据类型 [数组长度] ;
或者
数据类型 [ ] 数组名 = new 数据类型[数组长度] ;
(3)赋值:
语法:
数组名 [下标值] ;
在java中还提供了另外一种创建数组的方式,它声明数组,分配空间和赋值合并完成
语法:
数据类型[ ] 数组名 = {值1,值2,值3,……,值n};
数组元素初始化
数据类型 | 初始值 |
---|---|
int | 0 |
double | 0.0 |
char | ‘\n0000’ |
boolean | false |
数组排序(从小到大)
语法:
Arrays . sort(数组名) ;
示例代码:
import java.util.Arrays;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int[] scores = new int[5]; //成绩数组
Scanner input = new Scanner(System.in);
System.out.println("请输入5位学员的成绩:");
//循环录入学员成绩
for(int i = 0;i < scores.length; i++) {
scores[i] = input.nextInt();
}
Arrays.sort(scores); //对数组进行升序排序
System.out.print("学员成绩按升序排序");
//利用循环输出学员成绩
for(int i = 0; i < scores.length; i++) {
System.out.print(scores[i] + " ");
}
}
}
运行效果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sZlJuyeD-1569547747891)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569498368104.png)]
向数组插入元素
示例代码:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int[] list = new int[6]; //长度为6的数组
list[0] = 99;
list[1] = 85;
list[2] = 82;
list[3] = 63;
list[4] = 60;
int index = list.length; //保存新增成绩插入位置
System.out.println("请输入新增成绩:");
Scanner input = new Scanner(System.in);
int num = input.nextInt(); //输入要插入的数据
//找到新元素的插入位置
for(int i = 0; i < list.length; i++) {
if(num > list[i]) {
index = i;
break;
}
}
//元素后移
for(int j = list.length-1;j > index;j--) {
list[j] = list[j-1]; //index下标开始的元素后移一个位置
}
list[index] = num; //插入数据
System.out.println("插入成绩的下标是:"+index);
System.out.println("插入后的成绩信息是:");
for(int k = 0; k < list.length;k++) { //循环输出目前数组中的数据
System.out.print(list[k] + "\t");
}
}
}
运行效果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QOyfiW9B-1569547747892)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569501704787.png)]
循环结构进阶
什么是二重循环
什么是二重循环呢?简单来说,二重循环就是一个循环体内又包含了另一个完整的循环结构
while 循环,do—while 循环和for 循环,这三种循环之间是可以互相嵌套的
语法:
// while 与 while 循环嵌套
while(循环条件1){
//循环操作1
while(循环条件2){
//循环操作2
}
}
// do-while 与 do-while 循环嵌套
do{
//循环操作1
do{
//循环操作2
} while(循环条件2);
} while(循环条件1);
// for 与 for 循环嵌套
for(循环条件1){
//循环操作1
for(循环条件2){
//循环操作2
}
}
// while 与 for 循环嵌套
while(循环条件1){
//循环操作1
for(循环条件2){
//循环操作2
}
}
如何使用二重循环结构
示例代码:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int[]score = new int[4]; //成绩数组
int classNum = 3; //班级数量
double sum = 0.0; //成绩总和
double[] average = new double[classNum]; //平均成绩数组
//循环输入学员成绩
Scanner input = new Scanner(System.in);
for(int i = 0; i<classNum; i++) { //外层循环控制班级数量
sum = 0.0; //成绩总和归0
System.out.println("请输入第" + (i+1) + "个班级的成绩:");
for(int j = 0;j<score.length; j++) { //内层循环控制每个班的参赛人数
System.out.print("第" + (j+1) + "个学员的成绩:");
score[j] = input.nextInt();
sum = sum + score[j]; //成绩累加
}
average[i] = sum / score.length; //计算平均分
System.out.println("第" + (i+1) + "个班级参赛学员的平均分是:" + average[i] + "\n");
}
}
}
运行效果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2bBboxfh-1569547747892)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569502650320.png)]
在二重循环中使用 continue 语句
示例代码:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int[] score = new int[4]; //成绩数组
int classnum = 3; //班级数量
double sum = 0.0; //成绩总和
double[] average = new double[classnum];//平均分成绩数组
int count = 0; //记录85分以上学员人数
//循环输入学员成绩
Scanner input = new Scanner(System.in);
for(int i = 0;i<classnum;i++) {
sum = 0.0; //成绩总和归0
System.out.println("请输入第" + (i+1) + "个班级的成绩");
for(int j = 0; j < score.length;j++) {
System.out.print("第" + (j+1) + "个学员的成绩:");
score[j] = input.nextInt();
sum = sum + score[j]; //成绩累加
if(score[j]<85) { //成绩小于85,则跳出本轮循环
continue;
}
count++;
}
average[i] = sum / score.length;
System.out.println("第" + (i+1) + "个班级参赛学员的平均分是:" + average[i] + "\n");
}
System.out.println("成绩85分以上的学员人数有" +count+ "人");
}
}
运行效果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fcSGqr5D-1569547747893)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569502876191.png)]
从运行结果中可以看出,当输入的成绩小于85分时,continue 语句后面的 count++不会执行,而是回到内层 for 循环的开始继续输入下一个学员的成绩。如果输入的成绩大于85分,则会执行count++,输入完三个班级所有参赛学员的成绩后,打印出 count 的值,所以在内层循环中的continue语句,跳转时是跳过了内层循环中的剩余语句进入内层循环的下一次循环
在二重循环中使用 break 语句
示例代码:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int count = 0; //计数器,记录一共买了几件衣服
String choice; //顾客选择是否离开
Scanner input = new Scanner(System.in);
for(int i = 0;i < 5;i++) {
System.out.println("欢迎光临第" + (i+1) + "家专卖店");
for(int j = 0;j < 3;j++) {
System.out.print("要离开吗(y/n)?");
choice = input.nextLine();
//如果离开,则跳出,进入下一家店
if("y".equals(choice)) {
break;
}
System.out.println("买了一件衣服");
count++;//计数器加1
}
System.out.println("离店结账\n");
}
System.out.println("总共买了" + count + "件衣服");
choice = input.nextLine();
}
}
运行效果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lBhDrFy6-1569547747893)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569503249522.png)]
根据专卖店的数量得到外层循环的条件,根据限购衣服的数量得到内层循环的条件,在内层循环中,如果用户选择离开,则跳出内层循环,离店结账,进入下一家店,当五家专卖店都购物完毕时,打印出总共购买了几件衣服
二重循环中 continue 和 break 语句的对比
在二重循环中使用 break 语句
示例代码:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int count = 0; //计数器,记录一共买了几件衣服
String choice; //顾客选择是否离开
Scanner input = new Scanner(System.in);
for(int i = 0;i < 5;i++) {
System.out.println("欢迎光临第" + (i+1) + "家专卖店");
for(int j = 0;j < 3;j++) {
System.out.print("要离开吗(y/n)?");
choice = input.nextLine();
//如果离开,则跳出,进入下一家店
if("y".equals(choice)) {
break;
}
System.out.println("买了一件衣服");
count++;//计数器加1
}
System.out.println("离店结账\n");
}
System.out.println("总共买了" + count + "件衣服");
choice = input.nextLine();
}
}
运行效果:
[外链图片转存中…(img-lBhDrFy6-1569547747893)]
根据专卖店的数量得到外层循环的条件,根据限购衣服的数量得到内层循环的条件,在内层循环中,如果用户选择离开,则跳出内层循环,离店结账,进入下一家店,当五家专卖店都购物完毕时,打印出总共购买了几件衣服
二重循环中 continue 和 break 语句的对比
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UMGZhfIP-1569547747893)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569503568924.png)]