Java 1 — 4章总结
目录
第1章
视频:1-7 程序的移植
视频:1-8 经验技巧分享
第2章 变量和常量
本章节主要讲解如何在 Java 程序中应用变量和常量进行数据操作、数据类型分类及基本数据类型间的类型转换,帮助你对 Java 语言建立初步认识
编程:2-1 Java中的关键字
编程:2-2 认识Java标识符
测评:2-3 练习题
编程:2-4 变量是什么
编程:2-5 如何命名Java变量
编程:2-6 Java中的数据类型
编程:2-7 Java中变量的使用规则
测评:2-8 练习题
编程:2-9 Java中的自动类型转换
编程:2-10 Java中的强制类型转换
编程:2-11 Java常量的应用
编程:2-12 如何在Java中使用注释
测评:2-13 练习题
第3章 常用的运算符
Java 提供了一套丰富的运算符来操纵变量。学完这一章节后您将会理解并能够灵活的使用各种运算符
编程:3-1 什么是运算符
编程:3-2 Java中的算术运算符
编程:3-3 Java中的赋值运算符
编程:3-4 Java中的比较运算符
编程:3-5 Java中的逻辑运算符
测评:3-6 练习题
编程:3-7 Java中的条件运算符
编程:3-8 Java中运算符的优先级
测评:3-9 练习题
测评:3-10 练习题
第4章 流程控制语句
本章节主要讲解 Java 中的流程控制语句,包括选择结构、循环结构、跳转语句等。学完这一章后将对程序执行流程有更深的理解,会使用流程控制语句控制程序代码执行的过程
编程:4-1 Java条件语句之 if
编程:4-2 Java条件语句之 if...else
编程:4-3 Java条件语句之多重 if
编程:4-4 Java条件语句之嵌套 if
测评:4-5 练习题
编程:4-6 Java条件语句之 switch
编程:4-7 Java循环语句之 while
编程:4-8 Java循环语句之 do...while
编程:4-9 Java循环语句之 for
测评:4-10 练习题
编程:4-11 Java循环跳转语句之 break
编程:4-12 Java循环跳转语句之 continue
测评:4-13 练习题开始学习
编程:4-14 Java 循环语句之多重循环
编程:4-15 编程练习
第1章
视频:1-7 程序的移植
视频:1-8 经验技巧分享
多练 多问 及时总结
第2章 变量和常量
本章节主要讲解如何在 Java 程序中应用变量和常量进行数据操作、数据类型分类及基本数据类型间的类型转换,帮助你对 Java 语言建立初步认识
编程:2-1 Java中的关键字
Java 语言中有一些具有特殊用途的词被称为关键字。关键字对 Java 的编译器有着特殊的意义,在程序中应用时一定要慎重哦!!
Java 中常用关键字:
现在不需要你记住所有,混个眼熟即可,在学习的过程中,你会逐步找到感觉并记住他们
对了,差点忘了大事,Java 关键字是区分大小写的哦!所以 void 是关键字,但 Void 就不是了~~
public class HelloWorld {//创建类名public static voiD main(String[] args){ //主方法System.out.println("hello imooc"); //输出信息}
}
编程:2-2 认识Java标识符
标识符是神马?——标识符就是用于给 Java 程序中变量、类、方法等命名的符号。
使用标识符时,需要遵守几条规则:
1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符,不能以数字开头。譬如:123name 就是不合法滴
2. 标识符不能是 Java 关键字和保留字( Java 预留的关键字,以后的升级版本中有可能作为关键字),但可以包含关键字和保留字。如:不可以使用 void 作为标识符,但是 Myvoid 可以
3. 标识符是严格区分大小写的。 所以涅,一定要分清楚 imooc 和 IMooc 是两个不同的标识符哦!
4. 标识符的命名最好能反映出其作用,做到见名知意。
下面的例子就是错误的:
public class HelloWorld%{public static void main(String[] args) {System.out.println("hello imooc");}
}
测评:2-3 练习题
下列标识符符合规范的是(B)
A 123rate : 标识符不能以数字开头
B marks_3
C discount% : 不能包含 @、%、空格等其它特殊字符
D my name :标识符中间不能有空格,但是myName, My_name是合法的
编程:2-4 变量是什么
简单的说,我们可以把变量看作是个盒子,可以将钥匙、手机、饮料等物品存放在这个盒子中,也可以在需要的时候换成我们想存放的新物品。
在 Java 中,我们通过三个元素描述变量:变量类型、变量名以及变量值。
eg : 如果我们把变量比作是酒店的房间,要存储的数据就好比要住宿的客人,我们可以根据客人的要求安排其入住“标准间”或者是“总统套房”,并且可以根据房间名字快速查找到入住客人的信息。同理,在 Java 程序中,我们也可以根据所需要保存的数据的格式,将其保存在指定类型的变量空间中,并且通过变量名快速定位!
For example,我们定义了一个变量 love ,用来保存一个字符串 “imooc” , 在程序中只要找到了 love 这个变量,就能找到存储在里面的 ”imooc”!当然,我们也可以把 love 里面的值更换成新的字符串 “i love imooc” !
运行结果:
小伙伴们一定要注意哦: Java 中的标点符号是英文的。譬如语句结束的分号,是英文符号的分号,千万表写成中文滴哦~~
eg :请在编辑器中,第 3 行输入代码实现定义一个变量 hobby ,保存“慕课网”这个字符串
运行结果为: 慕课网
public class HelloWorld{//创建类名public static void main(String[] args) {//主方法String hobby = "慕课网";//定义数据类型并赋值System.out.println(hobby);//输出信息}
}
编程:2-5 如何命名Java变量
如同酒店会给每个房间起个性化的名字一样,程序中的变量也需要用合理的名字进行管理---变量名!
需要注意,给酒店房间起名字时可以是数字,如“802”,也可以是有趣的名字,如“牡丹”、“美国总统”、“水帘洞”等,但在给变量起名字时,必须符合一定的规则,如下所示:
以下变量的命名都是符合规范的:
但请看下面的代码,你懂得哈:
优秀攻城师的习惯:
1、变量名由多单词组成时,第一个单词的首字母小写,其后单词的首字母大写,俗称骆驼式命名法(也称驼峰命名法),如 myAge
2、变量命名时,尽量简短且能清楚的表达变量的作用,做到见名知意。如:定义变量名 stuName 保存“学生姓名”信息
PS: Java 变量名的长度没有限制,但 Java 语言是区分大小写的,所以 price 和 Price 是两个完全不同的变量哦!
eg : 任务
为了便于程序维护,变量命名时一定要符合规范哦。
请在编辑器中,main 方法内的空白处编写代码,定义两个变量,分别保存“我爱慕课网”以及“www.imooc.com”这两个字符串,并实现打印输出
运行结果如图所示:
public class HelloWorld{//创建类名public static void main(String[] args) {//主方法String myLove="我爱慕课网";//定义数据类型并赋值String myURL="WWW.imooc.com";//定义数据类型并赋值System.out.println(myLove);//输出信息System.out.println(myURL);//输出信息}
}
编程:2-6 Java中的数据类型
通常情况下,为了方便物品的存储,我们会规定每个盒子可以存放的物品种类,就好比在“放臭袜子的盒子”里我们是不会放“面包”的!同理,变量的存储也讲究“分门别类”!
Java 语言是一种强类型语言。通俗点说就是,在 Java 中存储的数据都是有类型的,而且必须在编译时就确定其类型。 Java 中有两类数据类型:
在 Java 的领域里,基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址。说白了,基本数据类型变量里存储的是直接放在抽屉里的东西,而引用数据类型变量里存储的是这个抽屉的钥匙,钥匙和抽屉一一对应。
常用的基本数据类型有:
你可能已经注意到了:
注:关于 float 型和 double 型的区别,以及 char 型和 String 型的不同。
String 是一种常见的引用数据类型,用来表示字符串。在程序开发中,很多操作都要使用字符串来完成,例如系统中的用户名、密码、电子邮箱等。
下面的数据该使用哪种类型的变量进行保存呢?
姓名:爱慕课 | 性别:男 |
中奖数字:18 | 价格:120.5 |
确认要关闭程序吗:true |
请在编辑器中,指定第 3、4、5、6、7 行中变量的类型:
public class HelloWorld{ //创建类名public static void main(String[] args) { //主方法String name="爱慕课"; //定义数据类型并赋值char sex='男'; //定义数据类型并赋值int num=18; //定义数据类型并赋值double price=120.5; //定义数据类型并赋值boolean isOK=true; //定义数据类型并赋值System.out.println(name);//输出信息System.out.println(sex); //输出信息System.out.println(num); //输出信息System.out.println(price);//输出信息System.out.println(isOK);//输出信息}
}
编程:2-7 Java中变量的使用规则
不得不接受的变量小脾气:
1、Java 中的变量需要先声明后使用
2、变量使用时,可以声明变量的同时进行初始化
,
也可以先声明后赋值
3、变量中每次只能赋一个值,但可以修改多次
4、main 方法中定义的变量必须先赋值,然后才能输出
5、虽然语法中没有提示错误,但在实际开发中,变量名不建议使用中文,容易产生安全隐患,譬如后期跨平台操作时出现乱码等等
关于 String :表示变量中存储的数据的类型为字符串,后面小节中会详细讲到,小小期待吧~~
eg : 你能找出在编辑器中第 3 行的错误吗?
public class HelloWorld{//创建类名public static void main(String[] args) {//主方法String city="江西";//定义数据类型并赋值System.out.println("我的家乡在:"+city);//输出信息}
}
测评:2-8 练习题
编程:2-9 Java中的自动类型转换
在 Java 程序中,不同的基本数据类型的数据之间经常需要进行相互转换。例如:
,
代码中 int 型变量 score1 可以直接为 double 型变量 score2 完成赋值操作,运行结果为: 82.0
这种转换称为自动类型转换。
当然自动类型转换是需要满足特定的条件的:
1. 目标类型能与源类型兼容,如 double 型兼容 int 型,但是 char 型不能兼容 int 型
2. 目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节,因此 double 类型的变量里直接可以存放 int 类型的数据,但反过来就不可以了
eg :
在编辑器中,代码功能为:定义三个变量,分别用来保存:考试平均分、增长值、调整后的平均分
期望运行结果为:
现在第 5 行存在错误,你能找到并修改正确么?
public class HelloWorld{//创建类名public static void main(String[] args) {//主方法double avg1=78.5;//定义数据类型并赋值int rise=5;//定义数据类型并赋值double avg2=avg1+rise;//定义数据类型并赋值System.out.println("考试平均分:"+avg1);//输出信息System.out.println("调整后的平均分:"+avg2);//输出信息}
}
1. 注意自动类型转换的条件哦,int 类型可自动转换为 double 类型,但 double 类型不能自动转换为 int 类型
2. 第 5 行参考:double avg2 = avg1 + rise ;
编程:2-10 Java中的强制类型转换
相信小伙伴们也发现了,尽管自动类型转换是很方便的,但并不能满足所有的编程需要。
例如,当程序中需要将 double 型变量的值赋给一个 int 型变量,该如何实现呢?
显然,这种转换是不会自动进行的!因为 int 型的存储范围比 double 型的小。此时就需要通过强制类型转换来实现了。
语法:( 数据类型 ) 数值
运行结果:
可以看到,通过强制类型转换将 75.8 赋值给 int 型变量后,结果为 75,数值上并未进行四舍五入,而是直接将小数位截断。
明白了吧,强制类型转换可能会造成数据的丢失哦,小伙伴们在应用时一定要慎重哦!
eg :
在编辑器中,定义了两个变量,请将第 4 行中的错误修改完整,将身高的平均值强制转换为整数值。
运行结果如图所示:
public class HelloWorld{//创建类名public static void main(String[] args) {//主方法double heightAvg1=176.2;//定义数据类型并赋值int heightAvg2=(int)heightAvg1;//定义数据类型并赋值System.out.println(heightAvg1);//输出信息System.out.println(heightAvg2);//输出信息}
}
1. 强制类型转换语法:( 数据类型 ) 数值
2. 注意应用英文的符号
编程:2-11 Java常量的应用
所谓常量,我们可以理解为是一种特殊的变量,它的值被设定后,在程序运行过程中不允许改变。
语法:final 常量名 = 值;
程序中使用常量可以提高代码的可维护性。例如,在项目开发时,我们需要指定用户的性别,此时可以定义一个常量 SEX,赋值为 "男",在需要指定用户性别的地方直接调用此常量即可,避免了由于用户的不规范赋值导致程序出错的情况。
伙计们注意啦:常量名一般使用大写字符
eg : 请在编辑器中,定义两个常量,分别用于保存用户的性别,并实现打印输出
public class HelloWorld{//创建类名public static void main(String[] args) {//主方法final String MALE="男";//定义数据类型并赋值final String FEMALE="女";//定义数据类型并赋值System.out.println(MALE);//输出信息System.out.println(FEMALE);//输出信息}
}
声明常量必须使用 final 关键字哦
编程:2-12 如何在Java中使用注释
在编写程序时,经常需要添加一些注释,用以描述某段代码的作用。
一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的 1/3 以上。因此,注释是程序源代码的重要组成部分,一定要加以重视哦!
Java 中注释有三种类型:单行注释、多行注释、文档注释
运行结果: Hello Imooc!
看:被注释的代码块在程序运行时是不会被执行的~~
我们可以通过 javadoc 命令从文档注释中提取内容,生成程序的 API 帮助文档。
打开首页,查看下生成的 API 文档
PS:使用文档注释时还可以使用 javadoc 标记,生成更详细的文档信息:
@author 标明开发该类模块的作者
@version 标明该类模块的版本
@see 参考转向,也就是相关主题
@param 对方法中某参数的说明
@return 对方法返回值的说明
@exception 对方法可能抛出的异常进行说明
eg :
请在编辑器中,使用单行注释将第 3 行中的代码注释掉, 使用多行注释将第 5、6 两行中的代码注释掉
运行结果: imooc
public class HelloWorld{//创建类名public static void main(String[] args) {//主方法// System.out.println("Java");System.out.println("imooc");//输出信息/*System.out.println("Oracle");System.out.println("MySQL");*/}
}
单行注释以双斜线 // 开头,多行注释以 /* 开头,以 */ 结尾
测评:2-13 练习题
第3章 常用的运算符
Java 提供了一套丰富的运算符来操纵变量。学完这一章节后您将会理解并能够灵活的使用各种运算符
编程:3-1 什么是运算符
运算符是一种“功能”符号,用以通知 Java 进行相关的运算。譬如,我们需要将变量 age 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作。
Java 语言中常用的运算符可分为如下几种:
Ø 算术运算符
Ø 赋值运算符
Ø 比较运算符
Ø 逻辑运算符
Ø 条件运算符
eg : 当计算两数之和时,需要使用加法运算符。在 Java 中,加法运算符使用“+”表示
在编辑器中,第 5 行输入:
int sum = a + b ;
运行结果为: 两数之和为:36
public class HelloWorld{//创建类名public static void main(String[] args) {//主方法int a=12;//定义数据类型并赋值int b=24;//定义数据类型并赋值int sum = a + b ;//定义数据类型并赋值System.out.println("两数之和为:"+sum);//输出信息}
}
编程:3-2 Java中的算术运算符
算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法等。
Java 中常用的算术运算符:
其中,++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同滴
例1:
运行结果:
例2:
运行结果:
一定要注意哦!自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量!例如 5++ 、 8-- 等写法都是错误滴!
PS:% 用来求余数,也称为“取模运算符”
eg : 请在编辑器的指定行中输入代码实现功能
第7行:求取四个年龄的总和
第8行:求取四个年龄的平均值
第9行:求取 age1 和 age2 的差值
第10行:求取 age1 自减后的年龄
eg : 运行结果如图所示:
public class HelloWorld{public static void main(String[] args) {int age1=24;int age2=18;int age3=36;int age4=27;int sum=age1+age2+age3+age4;/*注意:*两个整数相除,所得结果为整数不含小数*即sum/4的结果应为26*当赋值给double类型变量时,才在后面补零做为浮点数*此处与数学运算中的除法概念不同,请各位小伙伴注意*思考一下,如果变为:sum/4.0结果该是多少呢?*/double avg=sum/4;int minus=age1-age2;int newAge=--age1;System.out.println("年龄总和:"+sum);//输出信息System.out.println("平均年龄:"+avg);//输出信息System.out.println("年龄差值:"+minus);//输出信息System.out.println("自减后的年龄:"+newAge);//输出信息}
}
编程:3-3 Java中的赋值运算符
赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的操作数。
Java 支持的常用赋值运算符,如下表所示:
任务
让我们赶紧来做个练习吧,亲...
请在编辑器中,空白处编写代码,应用赋值运算符实现如下结果:
public class HelloWorld{public static void main(String[] args) {int one = 10 ;//定义数据类型并赋值int two = 20 ;//定义数据类型并赋值int three = 0 ;//定义数据类型并赋值three = one + two;System.out.println("three = one + two ==>"+ three);//输出信息three += one;System.out.println("three += one ==>"+three);//输出信息three -= one;System.out.println("three -= one ==>"+three);//输出信息three *= one;System.out.println("three *= one ==>"+three);//输出信息three /= one;System.out.println("three /= one ==>"+ three);//输出信息three %= one;System.out.println("three %= one ==>" + three);//输出信息}
}
编程:3-4 Java中的比较运算符
比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。
Java 中常用的比较运算符如下表所示:
注意哦:
1、 > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型
2、 == 、 != 两边的操作数既可以是数值类型,也可以是引用类型
eg :
请在编辑器中的第 7 、 8 、 9 、 10 行中添加正确的比较运算符,实现如下运行结果:
public class HelloWorld{//创建类名public static void main(String[] args) {//主方法int a=16;//定义数据类型并赋值double b=9.5;//定义数据类型并赋值String str1="hello";//定义数据类型并赋值String str2="imooc";//定义数据类型并赋值System.out.println("a等于b:" + (a == b));//输出信息System.out.println("a大于b:" + (a > b));//输出信息System.out.println("a小于等于b:" + (a <= b));//输出信息System.out.println("str1等于str2:" + (str1 == str2));//输出信息}
}
编程:3-5 Java中的逻辑运算符
逻辑运算符主要用于进行逻辑运算。Java 中常用的逻辑运算符如下表所示:
我们可以从“投票选举”的角度理解逻辑运算符:
1、 与:要求所有人都投票同意,才能通过某议题
2、 或:只要求一个人投票同意就可以通过某议题
3、 非:某人原本投票同意,通过非运算符,可以使其投票无效
4、 异或:有且只能有一个人投票同意,才可以通过某议题
当使用逻辑运算符时,我们会遇到一种很有趣的“短路”现象。
譬如:( one > two ) && ( one < three ) 中,如果能确定左边 one > two 运行结果为 false , 则系统就认为已经没有必要执行右侧的 one < three 啦。
同理,在( one > two ) || ( one < three ) 中,如果能确定左边表达式的运行结果为 true , 则系统也同样会认为已经没有必要再进行右侧的 one < three 的执行啦!
eg :
假设有 A 、 B 、 C 、 D 四个人投票,由他们决定投票是否通过,此时就到了逻辑运算符“大显身手”的时候了。请在编辑器中的第 7 、 8 、 9 、 10 行中填写代码,将程序补充完整
结合运行结果,相信可以帮助大家更好的理解逻辑运算符的应用~~
public class HelloWorld {public static void main(String[] args) {boolean a = true; // a同意boolean b = false; // b反对boolean c = false; // c反对boolean d = true; // d同意System.out.println((a && b) + "未通过");//输出信息System.out.println((a || d) + "通过");//输出信息System.out.println((!a) + "未通过");//输出信息System.out.println((c ^ d) + "通过");//输出信息}
}
测评:3-6 练习题
编程:3-7 Java中的条件运算符
条件运算符( ? : )也称为 “三元运算符”。
语法形式:布尔表达式 ? 表达式1 :表达式2
运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值
例如:
因为,表达式 8>5 的值为 true ,所以,返回: 8大于5
eg :
在编辑器中的第 4 行输入代码,应用关系运算符实现 “判断:如果 score 大于或等于 60 ,输出及格,反之输出不及格“
运行结果为: 考试成绩如何:及格
public class HelloWorld{//创建类名public static void main(String[] args) {//主方法int score=68;//定义数据类型并赋值String mark = (score >= 60)?"及格" : "不及格";//定义数据类型并赋值System.out.println("考试成绩如何:"+mark);//输出信息}
}
编程:3-8 Java中运算符的优先级
所谓优先级,就是在表达式中的运算顺序。Java 中常用的运算符的优先级如下表所示:
级别为 1 的优先级最高,级别 11 的优先级最低。譬如,x = 7 + 3 * 2 得到的结果是 13 “先乘后加”嘛!
PS:大家没必要去死记运算符的优先级顺序,实际开发中,一般会使用小括号辅助进行优先级管理。例如:
分析:小括号优先级最高,因此
1、 执行 a + 18 ,结果为 30
2、 执行( a + 18 ) % 4 取模,结果为 2
3、 执行 a * ( ( a + 18 ) % 4 ),结果为 24
eg :
请在编辑器中的第 5 行输入如下代码,相信结合运行结果,大家会对运算符的优先级会有更加清晰的理解!
int x = ( m * 8 / ( n + 2 ) ) % m ;
运行结果:
public class HelloWorld {//创建类名public static void main(String[] args) {//主方法int m = 5;//定义数据类型并赋值int n = 7;//定义数据类型并赋值int x = (m * 8/(n+2))%m;//定义数据类型并赋值System.out.println("m:" + m);//输出信息System.out.println("n:" + n);//输出信息System.out.println("x:" + x);//输出信息}
}
测评:3-9 练习题
测评:3-10 练习题
第4章 流程控制语句
本章节主要讲解 Java 中的流程控制语句,包括选择结构、循环结构、跳转语句等。学完这一章后将对程序执行流程有更深的理解,会使用流程控制语句控制程序代码执行的过程
编程:4-1 Java条件语句之 if
生活中,我们经常需要先做判断,然后才决定是否要做某件事情。例如,如果考试成绩大于 90 分,则奖励一个 IPHONE 5S 。对于这种“需要先判断条件,条件满足后才执行的情况”,就可以使用 if 条件语句实现。
语法:
执行过程:
如:
注意哦:如果 if 条件成立时的执行语句只有一条,是可以省略大括号滴!但如果执行语句有多条,那么大括号就是不可或缺的喽~~
eg : 请在编辑器空白处补全代码,实现功能“判断变量 one 的值是否是偶数”
运行结果为: one是偶数
public class HelloWorld {//创建类名public static void main(String[] args) {//主方法int one = 20 ;//定义数据类型并赋值if (one % 2 == 0) {System.out.println("one是偶数");//输出信息}}
}
编程:4-2 Java条件语句之 if...else
if...else 语句的操作比 if 语句多了一步: 当条件成立时,则执行 if 部分的代码块; 条件不成立时,则进入 else 部分。例如,如果考试成绩大于 90 分,则奖励一个 IPHONE 5S ,否则罚做 500 个俯卧撑。
语法:
执行过程:
如:
eg :
试试用 if...else ... 考察一下年龄吧!
请在编辑器中的空白处将代码补充完整,实现功能“如果年龄大于等于 18 岁,则提示成年了,否则提示未成年”
运行结果为: 成年
public class HelloWorld {//创建类名public static void main(String[] args) {//主方法int age=25;//定义数据类型并赋值if (age >= 18) {System.out.println("成年");//输出信息}else{System.out.println("未成年");//输出信息}}
}
编程:4-3 Java条件语句之多重 if
多重 if 语句,在条件 1 不满足的情况下,才会进行条件 2 的判断;当前面的条件均不成立时,才会执行 else 块内的代码。例如,如果考试成绩大于 90 分,则奖励一个 IPHONE 5S ,如果成绩介于 70 分至 90 分之间,则奖励一个红米,否则罚做 500 个俯卧撑。
语法:
执行过程:
如:
该段代码的含义是:如果 score 值大于90,则奖励一个 Iphone 5s ,当 score 值小于等于 90 时,先判断 score 是否大于 70 ,如果 score 是介于 70--90 之间,则奖励一个红米,如果成绩小于等于 70 ,则罚做 500 个俯卧撑
当需要判断的条件是连续的区间时,使用多重 if 语句是非常方便滴!
eg :
请在编辑器中应用多重 if 语句,补全代码实现如下功能:
假设年龄大于 60 岁,则提示“老年”;如果年龄介于 40 岁至 60 岁之间,则提示“中年”;如果年龄介于 18 岁至 40 岁之间,则提示“少年”; 18 岁以下则提示“童年”
运行结果为: 少年
public class HelloWorld {//创建类名public static void main(String[] args) {//主方法int age=25;//定义数据类型并赋值if (age > 60) {System.out.println("老年");//输出信息}else if (age >40) {System.out.println("中年");//输出信息}else if (age >18) {System.out.println("少年");//输出信息}else{System.out.println("童年");//输出信息}}
}
多重 if 语句中,不要忘记 else if 块中间的空格哦!
编程:4-4 Java条件语句之嵌套 if
嵌套 if 语句,只有当外层 if 的条件成立时,才会判断内层 if 的条件。例如,活动计划的安排,如果今天是工作日,则去上班,如果今天是周末,则外出游玩;同时,如果周末天气晴朗,则去室外游乐场游玩,否则去室内游乐场游玩。
语法:
执行过程:
例如:
运行结果为: 去室外游乐场游玩
eg :
请在代码编辑器中补全代码实现赛程设置:预赛成绩大于 80 分的可进入决赛,然后根据性别再划分为男子组决赛和女子组决赛。
运行结果为: 进入女子组决赛
public class HelloWorld {//创建类名public static void main(String[] args) {//主方法int score = 94;//定义数据类型并赋值String sex = "女";//定义数据类型并赋值if(score > 80) {if(sex.equals("男")) {System.out.println("进入男子组决赛");//输出信息}else{System.out.println("进入女子组决赛");//输出信息}}else{System.out.println("淘汰");//输出信息}}
}
测评:4-5 练习题
编程:4-6 Java条件语句之 switch
当需要对选项进行等值判断时,使用 switch 语句更加简洁明了。例如:根据考试的名次,给予前 4 名不同的奖品。第一名,奖励笔记本一台;第二名,奖励 IPAD 2 一个;第三名,奖励移动电源一个;最后一名奖励 U 盘一个。
语法:
执行过程:当 switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配的 case 语句则执行 default 块的代码。
如:
不得不说的几点小秘密:
1、 switch 后面小括号中表达式的值必须是整型或字符型
2、 case 后面的值可以是常量数值,如 1、2;也可以是一个常量表达式,如 2+2 ;但不能是变量或带有变量的表达式,如 a * 2
3、 case 匹配后,执行匹配块里的程序代码,如果没有遇见 break 会继续执行下一个的 case 块的内容,直到遇到 break 语句或者 switch 语句块结束 如
,
运行结果:
4、 可以把功能相同的 case 语句合并起来,如
5、 default 块可以出现在任意位置,也可以省略
eg :
请在代码编辑器中,使用 switch 语句补全代码,设置属于你的菜谱:如果今天是星期一、三、五,则早餐吃包子,如果是星期二、四、六,则早餐吃油条,如果是星期日,则吃“主席套餐”
运行结果为: 吃主席套餐
编程:4-7 Java循环语句之 while
生活中,有些时候为了完成任务,需要重复的进行某些动作。如参加 10000 米长跑,需要绕 400 米的赛道反复的跑 25 圈。在 Java 中实现功能时,也经常需要重复执行某些代码,例如,我们为了表示“浓烈的爱”,希望输出 1000 行“我爱慕课网!”。显然,此时重复敲 1000 遍输出语句是不靠谱滴!!那么,有木有好的办法来解决呢? 有,循环语句!
Java 常用的 3 种循环: while 、 do...while 、 for
本小节咱们先来聊聊 while
语法:
执行过程:
< 1 >、 判断 while 后面的条件是否成立( true / false )
< 2 >、 当条件成立时,执行循环内的操作代码 ,然后重复执行< 1 >、< 2 >, 直到循环条件不成立为止
特点:先判断,后执行
如:
eg :
一起来感受一下 while 的魅力吧!
实现功能:顺序输出 1 ~ 5 这 5 个数字。
实现思路:使用一个变量 i 代表 1 - 5 之间的数字,值从 1 开始,每次循环时输出 i 的值,并且对 i 的值加 1 ,只要 i 小于等于数字 5 就执行该循环
请在编辑器中的第 7 行,将 while 语句的条件补充完整,程序运行结果:
public class HelloWorld {//创建类名public static void main(String[] args) {//主方法int i = 1; // 代表 1 - 5 之间的数字// 当变量小于等于 5 时执行循环while (i <= 5) {// 输出变量的值,并且对变量加 1,以便于进行下次循环条件判断System.out.println(i);//输出信息i++;}}
}
编程:4-8 Java循环语句之 do...while
do...while 循环与 while 循环语法有些类似,但执行过程差别比较大。
语法:
执行过程:
<1>、 先执行一遍循环操作,然后判断循环条件是否成立
<2>、 如果条件成立,继续执行< 1 > 、< 2 >,直到循环条件不成立为止
特点: 先执行,后判断
由此可见,do...while 语句保证循环至少被执行一次!
例如,依然输出 1000 遍“我爱慕课网”,使用 do...while 的实现代码为:
eg : 实现功能:计算 50 以内(包括 50 )的偶数之和
实现思路:首先定义一个变量 sum ,用来保存所有偶数的和,然后定义一个变量 num 代表 1--50 之间的偶数,值从 2 开始,每次循环执行时将 num 的值累加保存在变量 sum 中,并且将 num 值加 2 (偶数嘛,你懂得哈~~),只要 num 的值在 1--50 之内就重复执行该循环
请将编译器中的第 10、14 行补充完整。
运行结果为: 50以内的偶数之和为:650
public class HelloWorld {//创建类名public static void main(String[] args) {//主方法int sum = 0; // 保存 1-50 之间偶数的和int num = 2; // 代表 1-50 之间的偶数do {sum = sum + num;//实现累加求和num = num + 2;//每执行一次将数值加2,以进行下次循环条件判断} while ( num <= 50 ); // 当变量小于等于50 时重复执行循环System.out.println(" 50以内的偶数之和为:" + sum );//输出信息}
}
编程:4-9 Java循环语句之 for
Java 的循环结构中除了 while 和 do...while 外,还有 for 循环,三种循环可以相互替换。
语法:
执行过程:
<1>、 执行循环变量初始化部分,设置循环的初始状态,此部分在整个循环中只执行一次
<2>、 进行循环条件的判断,如果条件为 true ,则执行循环体内代码;如果为 false ,则直接退出循环
<3>、 执行循环变量变化部分,改变循环变量的值,以便进行下一次条件判断
<4>、 依次重新执行< 2 >、< 3 >、< 4 >,直到退出循环
特点:相比 while 和 do...while 语句结构更加简洁易读
例如,输出 1000 遍“我爱慕课网”,使用 for 的实现代码为:
需要留心的几个小细节:
1、 for 关键字后面括号中的三个表达式必须用 “;” 隔开,三个表达式都可以省略,但 “;” 不能省略。
a. 省略“循环变量初始化”,可以在 for 语句之前由赋值语句进行变量初始化操作,如:
b. 省略“循环条件”,可能会造成循环将一直执行下去,也就是我们常说的“死循环”现象,如:
在编程过程中要避免“死循环”的出现,因此,对于上面的代码可以在循环体中使用 break 强制跳出循环(关于 break 的用法会在后面介绍)。
c. 省略“循环变量变化”,可以在循环体中进行循环变量的变化,如:
2、 for 循环变量初始化和循环变量变化部分,可以是使用 “,” 同时初始化或改变多个循环变量的值,如:
代码中,初始化变量部分同时对两个变量 i 和 j 赋初值,循环变量变化部分也同时对两个变量进行变化,运行结果:
3、 循环条件部分可以使用逻辑运算符组合的表达式,表示复杂判断条件,但一定注意运算的优先级,如:
代码中,必须同时满足变量 i 小于 10 ,并且 i 不等于 5 时才会进行循环,输出变量 i 的值。
eg :
实现功能:计算 1 到 100 之间不能被 3 整除的数之和
实现思路:定义一个变量 sum 用来保存数据和,定义一个变量 i 代表 1--100 之间的数据,值从 1 开始。通过 for 循环判断 i 是否是 3 的倍数,符合要求的数据保存在 sum 中。
请在编辑器中的第 6 行,将 for 语句补充完整。
运行结果为: 1到100之间不能被3整除的数之和为:3367
public class HelloWorld {//创建类名public static void main(String[] args) {//主方法int sum = 0; // 保存不能被3整除的数之和// 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环for (int i = 1; i<=100; i++) {// 变量 i 与 3 进行求模(取余),如果不等于 0 ,则表示不能被 3 整除if (i % 3 != 0) { sum = sum + i; // 累加求和}}System.out.println("1到100之间不能被3整除的数之和为:" + sum);}
}
测评:4-10 练习题
编程:4-11 Java循环跳转语句之 break
生活中,我们经常会因为某些原因中断既定的任务安排。如在参加 10000 米长跑时,才跑了 500 米就由于体力不支,需要退出比赛。在 Java 中,我们可以使用 break 语句退出指定的循环,直接执行循环后面的代码。
例如,使用循环输出 1--10的数值,其中,如果数值大于 2 ,并且为 3 的倍数则停止输出。
实现代码:
运行结果:
eg :
实现功能:循环将 1 到 10 之间的整数相加,如果累加值大于 20,则跳出循环,并输出当前的累加值。
实现思路:定义一个变量 sum 保存累加值,定义一个变量 i 保存 1 至 10 之间的整数,在循环中进行累加求和,同时判断累加值是否大于 20 ,当大于 20 时输出当前的累加值并退出循环。请在右边编辑器中的第 14、19 行,将语句补充完整,运行结果为: 当前的累加值为:21
public class HelloWorld {//创建类名public static void main(String[] args) {//主方法// 保存累加值int sum = 0;// 从1循环到10for (int i = 1; i <= 10; i++) {// 每次循环时累加求和sum = sum + i;//判断累加值是否大于20,如果满足条件则退出循环if ( sum > 20 ) {System.out.print("当前的累加值为:" + sum);//退出循环break; }}}
}
编程:4-12 Java循环跳转语句之 continue
continue 的作用是跳过循环体中剩余的语句执行下一次循环。
例如,打印 1--10 之间所有的偶数,使用 continue 语句实现代码为:
运行结果:
eg :
实现功能:求 1 到 10 之间的所有偶数的和。
实现思路:定义一个变量 sum 保存累加值,定义一个变量 i 保存 1 到 10 之间的整数,循环遍历并进行判断,如果 i 不能被 2 整除,则结束本次循环,继续执行下一次循环,否则进行累加求和。
请将编辑器中的第 9、10 行语句补充完整。
运行结果为: 1到10之间的所有偶数的和为:30
public class HelloWorld {//创建类名public static void main(String[] args) {//主方法int sum = 0; // 保存累加值for (int i = 1; i <= 10; i++) {// 如果i为奇数,结束本次循环,进行下一次循环if (i % 2 == 1) {continue; }sum = sum + i;}System.out.print("1到10之间的所有偶数的和为:" + sum);//输出信息}
}
测评:4-13 练习题开始学习
编程:4-14 Java 循环语句之多重循环
循环体中包含循环语句的结构称为多重循环。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。在二重循环中,外层循环每执行一次,内层循环要执行一圈。
如下所示:
例如:使用 * 打印长方形:
实现代码为:
执行流程:当 i = 1 时,外层循环条件成立,进入内层循环,开始打印第一行内容。此时, j 从 1 开始,循环 8 次,内层循环结束后换行,实现第一行 8 个 * 的输出。接下来返回外层循环 i 变为 2 ,准备打印下一行,依此类推,直到完成长方形的打印。
eg : 实现功能:使用 * 打印直角三角形
实现思路:上面的图形中,第 1 行有一个 * 号,第 2 行有两个 * 号,第 3 行有三个 * 号,所以可以使用二重循环来实现。其中,外层循环控制行数,内层循环控制每行的 * 号数。同时,我们发现一个规律,当打印每行信息时,内层循环变量的最大值和外层循环变量的值相等。
请将编辑器中的第 7、11 行语句补充完整。
效果如下:
public class HelloWorld {//创建类名public static void main(String[] args) {//主方法System.out.println("打印直角三角形");//输出信息// 外层循环控制行数for (int i = 1; i <= 3; i++) {// 内层循环控制每行的*号数//内层循环变量的最大值和外层循环变量的值相等for (int j = 1; j <=i; j++) {System.out.print("*");}// 每打印完一行后进行换行System.out.println();}}
}
编程:4-15 编程练习
循环体中包含循环语句的结构称为多重循环。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。在二重循环中,外层循环每执行一次,内层循环要执行一圈。
eg : 给定一个小于10位的数,判断它是几位数。
例如:输入999,则输出 “它是个3位的数!”
public class HelloWorld{//定义类名
public static void main(String[] args){//主方法
int num = 999;//定义数据类型并赋值
int count = 0;//定义数据类型并赋值
if(num >= 0 && num <= 999999999) {while(num != 0) {count++;num/=10;}System.out.println("它是个"+count+"位的数!");//输出信息}else{System.out.println("输入有误! ");//输出信息}}
}
Java 1 — 4章总结相关推荐
- JAVA第六章第6题,java第六章例题源代码
<JavaWeb 程序设计> 练习题参考答案 第一章:Servlet 基础 1.下列选项中属于...由于 PHP 开放源 代码,并且是免费的,所以非常流行,是当今 Internet 上最为 ...
- java标识命名服务_阿里巴巴Java开发规约第一章编程规约-命名风格篇
1.[强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name /__name / $name / name_ / name$ / name__ 老四附言: ...
- java 3D 第二章 java 3D基本概念
java 3D 第二章 java 3D基本概念 java 3D基本概念 java 3D的包及其功能 java 3D 高分辨率大尺度坐标 Java 3D场景图(Scene Graph) VirtualU ...
- Java算法--第二章--查找与排序(2)递归基础--佩波那契最大公约数插入排序汉诺塔
Java算法–第二章–查找与排序(2)递归基础 一.找重复 1.找到一种划分方法 2.找到递推公式或者等价转换 都是父问题转化为求解子问题 二.找变化的量 变化的量通常要作为参数 三.找出出口 代码: ...
- “全栈2019”Java第十三章:基本数据类型
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 尚学堂Java第五章所有题目
尚学堂Java第五章所有题目 一.选择题 二.简答题 三.编码题 编码题一 编码题二 编码题三 这次的作业有一部分理解的可能不是很透彻,可能不是最优的方法,希望师傅们能给刚入门的我一点建议! 一.选择 ...
- 速学堂(java)第十一章编程题答案(自写)
速学堂(java)第十一章编程题答案(自写) 1.设计一个多线程的程序如下:设计一个火车售票模拟程序.假如火车站要有100张火车票要卖出,现在有5个售票点同时售票,用5个线程模拟这5个售票点的售票情况 ...
- 尚学堂Java第四章作业编码题+个人想法
尚学堂Java第四章作业编码题+个人想法 编码题一: 编码题二: 编码题三: 终于到我想说的地方了 刚开始学习Java,刚开始学会做笔记,觉悟的可能比较晚,但没关系,我会努力的! 由于每次做作业都难理 ...
- Java 第11章 常用类库
Java 第11章 常用类库 Java是一种面向对象语言,Java中的类把方法与数据连接在一起,构成了自包含式的处理单元.为了提升Java程序的开发效率,Java的类包中提供了很多常用类以方便开发 ...
- Thinking in java 第11章 持有对象 笔记+习题
Thinking in java 第11章 持有对象 学习目录 11.1 泛型和类型安全的容器 1. 当你制定了某个类型作为泛型参数时,你并不仅限于只能将该确切类型的对象放置到容器中.向上转型也可一样 ...
最新文章
- 【337天】我爱刷题系列096(2018.01.08)
- 企业靠这些 云端数据就能得到企业级的安全守护
- ArcGIS 桌面版安装和ArcMap添加mdb库表基本操作
- Android课程设计倒计时app,单片机课程设计-可调倒计时器.doc
- 中国工业节能减排产业项目盈利模式及投资风险预警报告2021-2027年
- Arraylist、HashSet去重复 treeSet排列实现方法 HashMap遍历取值
- 使用rsync和scp远程同步文件
- [转载]如何做到 jQuery-free?
- Grunt 新手指南
- 2018年C语言期末考试题及答案,HZNUOJ--2018年秋季学期程序设计基础(C语言)期末考试(补题)...
- 用8张图理解Java
- DeepFake——实际操作
- 海康存储服务器 硬盘红色,海康磁盘阵列存储服务器
- 工业访问控制行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- 中关村买手机上当案例
- 移动光猫只有一个lan口?其他是电视用,如何增lan口
- LaTeX论文图片排版
- 魅族16th完美开启Usb调试模式的经验
- 【listener hangs】监听hangs,导致新的连接无法连接数据库
- 静态库和动态库的调用
热门文章
- [IDE]IntelliJ IDEA使用教程(很全)
- 王者网站想以php结尾,玩王者荣耀,我用PHP分析了选英雄的那些事儿……
- 双频wifi和单频wifi有什么区别
- emc存储设备型号_EMC推出两款Symmetrix存储设备
- ikbc机械键盘测评
- QGC添加自定义组件和发送自定义MAVLINK消息
- mdadm :commomd not found完美解决
- M1pro mac登陆EasyConnect报错“未能正确打开SANGFOR SSL Virtual网卡,暂时不能提供SSL CS服务,请联系管理员”
- linux中的suid权限,linux suid权限问题
- 华为荣耀平板6支持鸿蒙OS,华为新平板提上日程,首发鸿蒙系统,游戏体验升级...