头歌Java入门 - 变量与数据类型

第1关:变量与常量

任务描述

本小节你只需要完成:定义变量,并输出它

相关知识

什么是常量,什么是变量

你只需要记住两点:

常量:就是一种不会根据环境而改变的数据,例如:圆周率。 变量:是一种能够根据不同环境产生不同值的数据,例如:手机电量。

例如图中的水杯容量,电池容量,人物等级都是变量。

怎么定义变量

Java中,我们通过三个元素描述变量:变量类型、变量名以及变量值。 那什么是变量类型,变量名,变量值呢?

通过这张图你就能很好的理解了。 在计算机系统中有很多文件的类型(例如:视频文件,音频文件,office文件等等),在Java中的变量类型又有哪些呢?在JAVA中变量类型大致可以分为两种一种是数值类型,一种是非数值类型,数值类型又分为两种:整形非整形如图所示:

如果你理解了,那么请你查看下图,思考哪些是数值类型整形非整形非数值类型

答案在最下方.

接下来我们就要开始定义变量了,需要四个步骤。

  1. 确定变量类型。
  2. 取变量名。
  3. 给变量赋初值。
  4. 别忘了分号结尾哦。

例如:我们要定义一个名字是张三的变量,并且输出:

 
  1. public static void main(String[] args){
  2. String name = "张三";
  3. System.out.println(name);
  4. }

输出的结果: 张三

思考题答案

编程要求

请在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. 由字母,下划线,美元符号($),数字组成,但第一个字符不能是数字。
  2. 如果变量名是复合型的那么我们采用驼峰式,或者蛇形式的方式。 驼峰式:teaCup(表示茶杯的意思),stuAge(学生年龄) 蛇形式:tea_cupstu_age
  3. 如果是单个单词就全小写就行了。
  4. 千万不要用中文拼音来表达:例如学生年龄:xueShengNianling
  5. 在一个方法中变量名不能重复。
  6. 变量一定要给自己一个确定的类型。

变量的赋值

我们定义了一个变量 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关:变量测试题

任务描述

本关任务:变量掌握情况测试。

相关知识

编程要求

根据相关知识,按照要求完成右侧区域内选择题任务,包含单选题和多选题。

测试说明

平台会对你选择的答案进行判断,全对则通过测试。


开始你的任务吧,祝你成功!

1、下列语句中,()正确完成整形变量的声明和赋值A、
int count,count=0;B、
int count=0;C、
count=0;D、
int count1=0,count2=1;2、在下列语句中()正确声明并初始化一个双精度型变量。A、
double d;B、
d=10;C、
double d=10;D、
float j=10;

答案:1.BD 2.C

第4关:JAVA数据类型

任务描述

本小节,需要你掌握两个知识:

1.JAVA中有多少种数据类型。

2.怎么定义这些数据类型的变量。

相关知识

JAVA中的数据类型

Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、doubleJAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。8 种类型表示范围如下:

1、byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。 2、short:16位,最大数据存储量是65536,数据范围是-32768 ~ 32767之间。 3、int:32位,最大数据存储容量是232次方减1,数据范围是负的231次方到正的231次方减1。 4、long:64位,最大数据存储容量是264次方减1,数据范围为负的263次方到正的263次方减1。 5、float:32位,数据范围在3.4e-45 ~ 1.4e38,直接赋值时必须在数字后加上fF。 6、double:64位,数据范围在4.9e-324 ~ 1.8e308,赋值时可以加dD也可以不加。 7、boolean:只有truefalse两个取值。 8、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 = "张无忌";			//在本行定义字符串变量nameString age = "23";//在本行定义年龄变量 ageString sex = "男";//在本行定义性别变量 sexString score = "66.6";//在本行定义分数变量  score/********* End *********/System.out.println(name + age + "岁" + "性别:" + sex + "这次考了" + score + "分");}
}	

第5关:Java类型转换

任务描述

本小节需要根据所学知识,修改Java代码,进行数据类型的转换,我们开始吧!

相关知识

什么是数据类型转换

顾名思义,数据类型转换就是指:不同数据类型之间的相互转换 关于数据类型转换只需要你掌握两种方式:

  1. 自动类型转换。 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 *********/}
}

第6关:JAVA数据类型和类型转换测试题

任务描述

本关任务:数据类型和类型转换掌握情况测试。

相关知识

编程要求

根据相关知识,按照要求完成右侧区域内选择题任务,包含单选题和多选题。

测试说明

平台会对你选择的答案进行判断,全对则通过测试。


开始你的任务吧,祝你成功!

1、以下不是Java基本数据类型的是()A、
intB、
floatC、
classD、
String2、以下关于类型转换成功的有()
float d = 84.5f;A、
char i=d;B、
int k=d;C、
int h=(int)d;D、
double c = d;3、下面()可以作为boolean类型变量的值A、
trueB、
2C、
"false"D、
false

答案:1.CD2.CD3.AD

第7关:Scanner的使用

任务描述

本关任务:完成编写Scanner实现如下效果:

相关知识

为什么要使用Scanner

我们前面所有的章节的练习一直都是输出一段数据,我们知道一个软件是既要有输出也需要有输入的。而Scanner就是用于用户Java程序中输入数据的。 所以对于Scanner你可以理解为,它就是一个扫描仪,用来获取我们从键盘输入的数据。

怎么使用?

你只需要记住三个步骤:

  1. 在类的声明之前,引入扫描仪(Scanner):import java.util.Scanner;
  2. 在方法中创建一个扫描仪 Scanner input = new Scanner(System.in);
  3. 通过扫描仪获取从键盘输入的数据 int i = input.nextInt();

接下来,让我们一起在windows系统中来使用一下Scanner吧。

  • D盘下新建一个java的文件夹用来存放代码。
  • java文件夹中新建一个HelloWorld.java的文件如图所示:

  • HelloWorld.java文件的第一行中输入import java.util.Scanner; 并在main函数中创建扫描仪(Scanner)如图所示:

  • 输入如图所示代码:
  • 最后我们一起来查看效果吧,使用windows键+R输入cmd打开dos界面按照如图所示操作来运行java程序吧。

提示

本关任务涉及到一些前面章节没有涉及到的细节。 如下:

  • 打印输出并换行和打印输出不换行。
     
    1. System.out.println("请输入姓名:嫦娥"); //输出并换行
    2. System.out.print("请输入姓名:嫦娥"); //输出但不换行
  • JAVA  相当于tab缩进,  表示回车,  表示换行 表示换成一个黑点。
     
    1. System.out.println(" 嫦娥");
    2. System.out.print(" 嫦娥
    3. ");//本行代码和上一行代码实现同样的效果


编程要求

好了,是时候检验一下学习成果了。 在Begin-End区域编写一个Java程序,定义变量,从控制台接受输入来描述嫦娥的姓名、年龄、性别、体重、地址、婚否等信息,效果如下图:

提示:Scanner不能获取char(字符)类型,获取小数类型需要使用nextDouble方法或者是nextFloat方法例如:

 
  1. //获取输入的小数
  2. double d = input.nextDouble();//获取输入的双精度类型数据
  3. 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 *********/}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部