第二章:变量,数据类型和运算符
一,常量和变量
1.常量很简单就是一些固定值,类似于:1,true,1.2,“wf”等这些直接有意义的值就可以成为常量。
在有些时候我们也可以用变量名定义为程序中的常量:
final int NUM = 10;
final double PI = 3.14;
int r = 2;
double area = PI * r * r;
优点:比较安全
推荐做法:
(1)常量名通常大写
(2)不同字符使用下划线分隔
(3)只能被赋值一次,通常定义时即对其初始化
2.变量:见名知义,值可以变的元素,类似于我们数学学得一元一次方程的x,y这种。
变量命名规则:
变量命名规则:
- 在java语言中有关键字和保留字,这些是不可以作为变量名的。
- 不能以数字开头,变量名不能包含空格,和一些运算符。
- 我们建议多个单词的变量名,用骆驼命名法命名。
二,java常用的数据类型
常用的数据类型分为两种:
- 数值类型:
- byte(字节型)
- int(整型)
- short(短整型)
- long(长整型)
- float(单精度浮点型)
- double(双精度浮点型)
- 非数值类型
- char(字符型)
- boolean(布尔型)
- String(字符串)
下面有他们的大小和取值范围:
三,变量的声明和使用
四,Scanner类的使用
第一步:导入Scanner类
- import java.util.*;
第二步:创建Scanner对象
- Scanner input = new Scanner(System.in);
第三步:获得键盘输入的数据
- int now = input.nextInt();
我们通过Scanner类(输入语句)和输出语句System.out.println();
就可以做一些用户的互动。
System.out.println("请输入长和宽:");
int leng,wide;
leng=sc.nextInt();
wide=sc.nextInt();
System.out.println("长方形面积为:"+leng*wide);
五,类型转换
当我们用一个浮点数+一个整型数,结果会是什么类型的呢?
double firstAvg = 81.29; //第一次平均分
double secondAvg; //第二次平均分
int rise = 2;
secondAvg = firstAvg + rise;
System.out.println("第二次平均分是:" + secondAvg);
答案是一个浮点型,这就是java的数值型的自动类型转换。
那么规则什么呢?
规则1:
- 如果一个操作数为double型,则整个表达式可提升为double型
规则2:满足自动类型转换的条件:
两种类型要兼容,数值类型(整型和浮点型)互相兼容
目标类型大于源类型: 例如:double 型大于 int 型
有些时候我们想要一个指定类型的值,这个时候我们就可以用强制类型转换。
int b = (int)10.2;
double a = 10;
int c = (int)a;
我们在需要强制类型转换的表达式前面加括号,里面写类型就可以了。
六,运算符
运算符分为赋值运算符,算数运算符,关系运算符,逻辑运算符,三目运算符。
1.赋值运算符
在数学中我们的等号的判断相等,在Java中我们是赋值的意义。
int a;
a=3;
这就代表了我们把3这个数值赋值给了变量a。
2.算数运算符
算术运算符分为:基础运算符和符合运算符。
3.关系运算符
注意:
=为赋值运算符,==为等于运算符
关系表达式的结果为布尔值
>、<、>=、<=
运算符的优先级别高于==、!=
>、<、>=、<=
运算符只支持数值类型的数据比较
4.逻辑运算符
- 如果第一个操作数已经能确定表达式的值,第二个操作数就不必计算了;
- 优先级别 ! > && > ||
5.三目运算符
int min;
min = 5 < 7 ? 5 : 7;
System.out.println(min);
min = 10 < 7 ? 10 : 7;
System.out.println(min);
6.运算符优先级
- 单目运算符包括! ++ --,优先级别高
- 优先级别最低的是赋值运算符
- 可以通过()控制表达式的运算顺序,()优先级最高
- 从右向左结合性的只有赋值运算符、三目运算符和单目运算符