二、变量与数据类型(头歌实践平台)
作者:互联网
第1关:变量与常量
任务描述
本小节你只需要完成:定义变量,并输出它。
相关知识
什么是常量,什么是变量
你只需要记住两点:
常量:就是一种不会根据环境而改变的数据,例如:圆周率。
变量:是一种能够根据不同环境产生不同值的数据,例如:手机电量。
例如图中的水杯容量,电池容量,人物等级都是变量。
怎么定义变量
在 Java中,我们通过三个元素描述变量:变量类型、变量名以及变量值。
那什么是变量类型,变量名,变量值呢?
通过这张图你就能很好的理解了。
在计算机系统中有很多文件的类型(例如:视频文件,音频文件,office文件等等),在Java中的变量类型又有哪些呢?在JAVA中变量类型大致可以分为两种一种是数值类型,一种是非数值类型,数值类型又分为两种:整形和非整形如图所示:
如果你理解了,那么请你查看下图,思考哪些是数值类型,整形,非整形,非数值类型。
答案在最下方.
接下来我们就要开始定义变量了,需要四个步骤。
确定变量类型。
取变量名。
给变量赋初值。
别忘了分号结尾哦。
例如:我们要定义一个名字是张三的变量,并且输出:
public static void main(String[] args){
String name = "张三";
System.out.println(name);
}
输出的结果: 张三
思考题答案
编程要求
请在Begin-End区域中定义一个名为 love 的变量,并且给变量赋值www.educoder.net,然后输出。
程序运行结果:www.educoder.net
代码实现
package chapter2.step1;
public class HelloWorld{
public static void main(String[] args){
/********* Begin *********/
String love="www.educoder.net";
System.out.println(love);
/********* End *********/
}
}
第2关:变量的使用
任务描述
本小节,你只需要完成:根据变量的命名规则给变量赋值。
相关知识
变量的命名规则和规范
我们定义变量的时候应该遵守什么规则呢?
我们先来看一张图。
这些都是符合规则
的。 再来看一张图。
这些都是 不符合规则
的。 相信看到这里你就明白了,JAVA
中变量
的命名和前面第一章所学的标识符
命名规则是一样的,不过还是有一些不同,总结下来规则与规范一共有六点: 1. 由字母,下划线,美元符号($),数字组成,但第一个字符不能是数字。 1. 如果变量名是复合型的那么我们采用驼峰式,或者蛇形式的方式。 驼峰式:teaCup
(表示茶杯的意思),stuAge
(学生年龄) 蛇形式:tea_cup
,stu_age
1. 如果是单个单词就全小写就行了。 1. 千万不要用中文拼音来表达:例如学生年龄:xueShengNianling
。 1. 在一个方法中变量名不能重复。 1. 变量一定要给自己一个确定的类型。
变量的赋值
我们定义了一个变量 name ,用来保存一个字符串 “张三丰” , 在程序中只要找到了 name 这个变量,就能找到存储在里面的 ”张三丰”!当然,我们也可以把 name的值更换成新的字符串 “张三”。
最后的输出结果为:
变量name的值为张三丰
最新赋值后变量name的值为张三
编程要求
在Begin-End区域中添加代码定义love变量并且赋初值为 我喜欢在educoder上学习在12行将userName的值改成李四。
运行结果:
代码实现
package chapter2;
public class HelloVariable {
public static void main(String[] args) {
/********* Begin *********/
String love = "我喜欢在educoder上学习"; //在这里定义变量 love 并赋初值为 我喜欢在educoder上学习
/********* End *********/
System.out.println("变量love的值为" + love);
String userName = "张无忌";
/********* Begin *********/
userName = "李四";
//在这一行将userName的值改成李四
/********* End *********/
System.out.println("重新赋值后变量userName的值为" + userName);
}
}
第3关:Java数据类型
任务描述
本小节,需要你掌握两个知识:
1.JAVA中有多少种数据类型。
2.怎么定义这些数据类型的变量。
相关知识
JAVA中的数据类型
Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。8 种类型表示范围如下:
2. byte:8位,最大存储数据量是255,存放的数据范围是-128127之间。
3. short:16位,最大数据存储量是65536,数据范围是-3276832767之间。
4. int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
5. long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
6. float:32位,数据范围在3.4e-451.4e38,直接赋值时必须在数字后加上f或F。
7. double:64位,数据范围在4.9e-3241.8e308,赋值时可以加d或D也可以不加。
8. boolean:只有true和false两个取值。
9. char:16位,存储Unicode码,用单引号赋值。
这些东西你不需要把他背下来,当然如果你能背下来那更好了,我们现在对这些数据类型有个初步的印象,在之后的学习过程中会越来越熟悉的,好了接下来看两张图帮助记忆吧。
怎么定义对应数据类型的变量
好了相信你现在已经迫不及待的想要尝试一下了吧。接下来我们就一起来定义这八种数据类型吧。
编程要求
在右侧Begin-End区域中,第7行定义字符串类型变量赋值为张无忌,第9行定义int类型变量赋值为23,在第11行定义字符型变量赋值为男,在第13行定义float变量赋值为66.6。
输出结果:张无忌23岁性别:男这次考了66.6分
代码实现
package chapter2;
public class JavaDataType1 {
public static void main(String[] args) {
/********* Begin *********/
String name="张无忌"; //在本行定义字符串变量name
int age=23; //在本行定义年龄变量 age
String sex="男"; //在本行定义性别变量 sex
float score=66.6f; //在本行定义分数变量 score
/********* End *********/
System.out.println(name + age + "岁" + "性别:" + sex + "这次考了" + score + "分");
}
}
第四关:Java类型转换
任务描述
本小节需要根据所学知识,修改Java代码,进行数据类型的转换,我们开始吧!
相关知识
什么是数据类型转换
顾名思义,数据类型转换就是指:不同数据类型之间的相互转换
关于数据类型转换只需要你掌握两种方式:
自动类型转换。 2. 强制类型转换。
自动类型转换
关于自动类型转换你只需要记住一句话,就是:表数范围小的可以向表数范围大的进行自动类型转换。
你可以这样理解:当一个小的容器的水换到一个大的容器中毫无问题,但是一个大的容器的水换成小的容器可能会装不下,就会溢出。
如下图:
在代码中体现:
如果你理解了,那就看个思考题吧。
答案在最后面哦。
强制类型转换
你肯定会有疑问,既然自动类型转换只能是表数范围小的可以向表数范围大的转换那么我在实际使用中想要将表述范围大的向小的转换怎么办呢?诶这里就要用到强制类型转换了,顾名思义,强制类型转换就是将:表数范围大的数向表数范围小的进行转换。
那怎么使用强制类型转换呢?
思考题答案
编程要求
在Begin-End区域中,定义了两个变量,在第 7 行中有错误请修改,并调整。
预期输出:
89.3
89
代码实现
package chapter2;
public class TypeConvert {
public static void main(String[] args) {
/********* Begin *********/
double score=89.3;
int scoreInt=(int)score;
System.out.println(score);
System.out.println(scoreInt);
/********* End *********/
}
}
第5关:Scanner的使用
任务描述
本关任务:完成编写Scanner实现如下效果:
相关知识
为什么要使用Scanner
我们前面所有的章节的练习一直都是输出一段数据,我们知道一个软件是既要有输出也需要有输入的。而Scanner就是用于用户在Java程序中输入数据的。
所以对于Scanner你可以理解为,它就是一个扫描仪,用来获取我们从键盘输入的数据。
怎么使用?
你只需要记住三个步骤:
在类的声明之前,引入扫描仪(Scanner):import java.util.Scanner;
在方法中创建一个扫描仪 Scanner input = new Scanner(System.in);
通过扫描仪获取从键盘输入的数据 int i = input.nextInt();
接下来,让我们一起在windows系统中来使用一下Scanner吧。
在D盘下新建一个java的文件夹用来存放代码。
在java文件夹中新建一个HelloWorld.java的文件如图所示:
-
在
HelloWorld.java
文件的第一行中输入import java.util.Scanner;
并在main
函数中创建扫描仪(Scanner)如图所示:
-
输入如图所示代码:
-
最后我们一起来查看效果吧,使用
windows键+R
输入cmd
打开dos
界面按照如图所示操作来运行java
程序吧。
提示
本关任务涉及到一些前面章节没有涉及到的细节。
如下:
打印输出并换行和打印输出不换行。
System.out.println("请输入姓名:嫦娥"); //输出并换行
System.out.print("请输入姓名:嫦娥"); //输出但不换行
在JAVA中 相当于tab缩进, 表示回车, 表示换行 表示换成一个黑点。
System.out.println(" 嫦娥");
System.out.print(" 嫦娥");
//本行代码和上一行代码实现同样的效果
编程要求
好了,是时候检验一下学习成果了。
在Begin-End区域编写一个Java程序,定义变量,从控制台接受输入来描述嫦娥的姓名、年龄、性别、体重、地址、婚否等信息,效果如下图:
提示:Scanner不能获取char(字符)类型,获取小数类型需要使用nextDouble方法或者是nextFloat方法例如:
//获取输入的小数
double d = input.nextDouble();//获取输入的双精度类型数据
float f = input.nextFloat();//获取输入的单精度类型数据
测试说明
本次任务中涉及到了输入数据,你只需要将代码补充在右侧即可,需要输入的数据,平台会自动帮你填充并测试,以后平台自动填充的数据以测试输入来表示。
测试输入:
嫦娥
3500
女
45.5
月球广寒宫
否
预期输出:
预期输出中绿色字体部分为平台输入的内容(在本地的效果和图中是一致的),不需要你输出,具体输出结果请查看右侧测试集。
代码实现
package chapter2.step7;
/********* Begin *********/
import java.util.Scanner;
public class HelloWorld{
public static void main(String[] args){
Scanner input= new Scanner(System.in);
System.out.println("请录入嫦娥个人信息:");
System.out.println("请输入姓名:");
String name = input.next();
System.out.println("请输入年龄:");
int age = input.nextInt();
System.out.println("请输入性别:");
String sex = input.next();
System.out.println("请输入体重:");
double weight = input.nextDouble();
System.out.println("请输入地址:");
String address = input.next();
System.out.println("请输入是否已婚:");
String voit = input.next();
System.out.println("信息如下:");
System.out.println("\t姓名:"+name);
System.out.println("\t年龄:"+age+"岁");
System.out.println("\t性别:"+sex);
System.out.println("\t体重:"+weight+"kg");
System.out.println("\t地址:"+address);
System.out.println("\t婚否:"+voit);
input.close();
/********* End *********/
}
}
标签:变量,数据类型,System,Scanner,String,头歌,println,out 来源: https://blog.csdn.net/CaesarQu/article/details/117373210