目录

第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章总结相关推荐

  1. JAVA第六章第6题,java第六章例题源代码

    <JavaWeb 程序设计> 练习题参考答案 第一章:Servlet 基础 1.下列选项中属于...由于 PHP 开放源 代码,并且是免费的,所以非常流行,是当今 Internet 上最为 ...

  2. java标识命名服务_阿里巴巴Java开发规约第一章编程规约-命名风格篇

    1.[强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name /__name / $name / name_ / name$ / name__ 老四附言: ...

  3. java 3D 第二章 java 3D基本概念

    java 3D 第二章 java 3D基本概念 java 3D基本概念 java 3D的包及其功能 java 3D 高分辨率大尺度坐标 Java 3D场景图(Scene Graph) VirtualU ...

  4. Java算法--第二章--查找与排序(2)递归基础--佩波那契最大公约数插入排序汉诺塔

    Java算法–第二章–查找与排序(2)递归基础 一.找重复 1.找到一种划分方法 2.找到递推公式或者等价转换 都是父问题转化为求解子问题 二.找变化的量 变化的量通常要作为参数 三.找出出口 代码: ...

  5. “全栈2019”Java第十三章:基本数据类型

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. 尚学堂Java第五章所有题目

    尚学堂Java第五章所有题目 一.选择题 二.简答题 三.编码题 编码题一 编码题二 编码题三 这次的作业有一部分理解的可能不是很透彻,可能不是最优的方法,希望师傅们能给刚入门的我一点建议! 一.选择 ...

  7. 速学堂(java)第十一章编程题答案(自写)

    速学堂(java)第十一章编程题答案(自写) 1.设计一个多线程的程序如下:设计一个火车售票模拟程序.假如火车站要有100张火车票要卖出,现在有5个售票点同时售票,用5个线程模拟这5个售票点的售票情况 ...

  8. 尚学堂Java第四章作业编码题+个人想法

    尚学堂Java第四章作业编码题+个人想法 编码题一: 编码题二: 编码题三: 终于到我想说的地方了 刚开始学习Java,刚开始学会做笔记,觉悟的可能比较晚,但没关系,我会努力的! 由于每次做作业都难理 ...

  9. Java 第11章 常用类库

    Java 第11章 常用类库 ​ Java是一种面向对象语言,Java中的类把方法与数据连接在一起,构成了自包含式的处理单元.为了提升Java程序的开发效率,Java的类包中提供了很多常用类以方便开发 ...

  10. Thinking in java 第11章 持有对象 笔记+习题

    Thinking in java 第11章 持有对象 学习目录 11.1 泛型和类型安全的容器 1. 当你制定了某个类型作为泛型参数时,你并不仅限于只能将该确切类型的对象放置到容器中.向上转型也可一样 ...

最新文章

  1. 【337天】我爱刷题系列096(2018.01.08)
  2. 企业靠这些 云端数据就能得到企业级的安全守护
  3. ArcGIS 桌面版安装和ArcMap添加mdb库表基本操作
  4. Android课程设计倒计时app,单片机课程设计-可调倒计时器.doc
  5. 中国工业节能减排产业项目盈利模式及投资风险预警报告2021-2027年
  6. Arraylist、HashSet去重复 treeSet排列实现方法 HashMap遍历取值
  7. 使用rsync和scp远程同步文件
  8. [转载]如何做到 jQuery-free?
  9. Grunt 新手指南
  10. 2018年C语言期末考试题及答案,HZNUOJ--2018年秋季学期程序设计基础(C语言)期末考试(补题)...
  11. 用8张图理解Java
  12. DeepFake——实际操作
  13. 海康存储服务器 硬盘红色,海康磁盘阵列存储服务器
  14. 工业访问控制行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  15. 中关村买手机上当案例
  16. 移动光猫只有一个lan口?其他是电视用,如何增lan口
  17. LaTeX论文图片排版
  18. 魅族16th完美开启Usb调试模式的经验
  19. 【listener hangs】监听hangs,导致新的连接无法连接数据库
  20. 静态库和动态库的调用

热门文章

  1. [IDE]IntelliJ IDEA使用教程(很全)
  2. 王者网站想以php结尾,玩王者荣耀,我用PHP分析了选英雄的那些事儿……
  3. 双频wifi和单频wifi有什么区别
  4. emc存储设备型号_EMC推出两款Symmetrix存储设备
  5. ikbc机械键盘测评
  6. QGC添加自定义组件和发送自定义MAVLINK消息
  7. mdadm :commomd not found完美解决
  8. M1pro mac登陆EasyConnect报错“未能正确打开SANGFOR SSL Virtual网卡,暂时不能提供SSL CS服务,请联系管理员”
  9. linux中的suid权限,linux suid权限问题
  10. 华为荣耀平板6支持鸿蒙OS,华为新平板提上日程,首发鸿蒙系统,游戏体验升级...