第一节 变量
计算机程序的作用是帮助处理数据,进行数据运算的,输入输出只是数据的搬运工作,处理数据才是程序的核心。要处理数据,我们需知道都有哪些数据类型供我们处理,所以今天的主角就是这些数据的的一种——变量。变量一词是相对与常量而讲的,所以它的具体概念在下一节常量中介绍,下面直接讲解变量的申明与使用。而在开始介绍他们之前,先介绍数据类型的种类。
数据类型的种类
在Java中只有两种数据类型,他们分别是基本数据类型和引用数据类型,基本数据类型又有4大类8小种。他们分别是表示数值的数值类型、表示字符的char类型、表示真假的boolean类型和表示二进制的byte类型。而表示数值的数值类型又分成整数类型和小数类型,整数类型根据长度(其可表示的数值范围,具体下节介绍)分为short,int,long三种。表示小数则分为float和double两种。具体如下图所知。
变量申明
变量的申明格式是:变量类型、空格、变量名、“;”。如:
int num;
short i;
float result;
double price;
...
需要注意的是变量的名字必须使用,数字、字母、下划线这三种组成,而且开头只能是字母和下划线,且变量名称不能与Java语言中的一些特殊字符(关键字和保留字)相同,因为这些特殊字符拥有特殊的含义,所以它们被称为关键字,另外java语言仍在继续开发中,所以还有一些字符它虽然目前没有特殊含义,但是将来可能拥有特殊含义,它们被称为保留字。
java中的关键字和保留字具体如下,每个版本不太一样但改动不是很大。这里仅供参考(大概注意一下就好,以后会习惯)。
关键字
boolean、byte、short、int、long、double、char、float、import、package。、class、extends、implements、interface。、if、else、switch、do、while、case、break、continue、return、default、while、for。、try、catch、finally、throw、throws。、abstract、final、native、private、protected、public、static、synchronized、transient、volatile。、new、instanceof、this、super、void、assert、const*、enum、strictfp、null
保留字
byValue、 cast、false、future、generic、inner、operator、outer、rest、true、var、goto
所以例如下面的变量名成都是不合法的。
int long;//关键字作为变量名
short 3rd; //数字不能用于开始
boolean true;//关键字作为变量名
float while;//关键字作为变量名
...
变量赋值
申明好一个变量后可给其赋值,可以立即给变量赋值也可以,申明完成后再赋值:
先申明再赋值
int i;
i = 3;
申明后立即赋值
boolean isThisMiaosBook = true;
用一个变量给另一个变量赋值,将number1的值赋给number2
int number1 = 3;
int number2 = number1;
使用运算结果赋值
int result = 3 + 2;
使用函数返回值赋值,我们还没有函数的概念,这里就使用上节介绍的键盘扫描函数赋值吧,即将键盘的输入结果赋值给这个变量,我们模板中有一个scanner对象,该对象是上一节中介绍的键盘扫描器,它除提供上一节中介绍getLine()方法外,还提供了一下更多方法。
int nextInt = scanner.nextInt();
short nextShort = scanner.nextShort();
double nextDouble = scanner.nextDouble();
long nextLong = scanner.nextLong();
float nextFloat = scanner.nextFloat();
boolean nextBoolean = scanner.nextBoolean();
变量使用
变量申明好了,也有值了,那么有什么用呢?参与运算,函数传参。
参与运算,变量可以和变量进行运算,也可以与常量一起运算。
int num1 = 3;
int num2 = 5;
int result1 = num1 + num2;
int result2 = 8 * number2;
...
函数传参,就是将该变量作为函数的参数传给一个函数,供这个函数使用,我们同样只能使用系统的打印函数了。同样System.out和System.err两个对象,除了有上节提供的两个打印字符串的方法外,还提供了更多的方法。包括打印各种数据类型的方法:
System.out.println(boolean arg);
System.out.println(char arg);
System.out.println(char[] arg);//用到后解释
System.out.println(int arg);
System.out.println(long arg);
System.out.println(String arg);
System.out.println(Object arg);
System.out.println(double arg);
System.out.println(float arg);
System.out.print(boolean arg);
System.out.print(char arg);
System.out.print(char[] arg);//用到后解释
System.out.print(int arg);
System.out.print(long arg);
System.out.print(String arg);
System.out.print(Object arg);
System.out.print(double arg);
System.out.print(float arg);
也就是说那两个方法可以放进去任何数据类型,供它打印到屏幕上。那我们就可以将我们的运算结果打印到屏幕上了。
int num1;//变量申明
num1 = 3;//变量赋值
int num2 = 5;//变量申明赋值
int result1 = num1 + num2;//变量申明并附值一个运算结果
int result2 = 8 * number2;
System.out.println(num1);//打印一个变量
System.out.println(result1);
~完~
好了有了本节学习的内容我们可以写一个什么程序呢?我们可以写4个简单的一次性计算器,因为每次运行只可以计算一次,所以,我们称为一次性计算器(学完分支和循环后,优化成一个完善的计算器),每个计算器只可以做一种运算,加法,减法,乘法,除法。(+、-、*、/四种运算符参考),下面给出一个计算器的实现。
- 在工作空间中新建一个calculator文件夹作为我们的计算器项目。
- 在项目中新建文件名为Add.java
- 代码如下
import java.util.Scanner;
public class Add {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 这里写代码
System.out.print("please input num1 : ");
double num1 =scanner.nextDouble();
System.out.print("please input num2 : ");
double num2 =scanner.nextDouble();
double result = num1 + num2;
System.out.println("result is : " + result);
scanner.close();
}
}
/////////////////////////////////////////
please input num1 : 3.2
please input num2 : 9.3
result is : 12.5
请尝试如果不对变量赋值,直接输出的话,会输出什么,就是说它的默认值是什么。 请发挥你的创造力实现另外3个计算器。