浮点型变量
double型、float型。
科学计数法:
double a = 314e2; // 31400
double b = 314e-2; // 3.14
float类型赋值需在后面加 f 或 F 。
float a = 3.14f;
浮点数不精确,不可用于比较;如需比较,需要调用java.math.*包下的BigDecimal方法。
字符型变量/常量
字符:char型。
char a = 't';
char b = '\n'; //转义字符
System.out.println('a' + 'b'); //输出数字
System.out.println("" + 'a' + 'b'); //输出 ab
字符串(字符序列):String型。
String a = "hello";
布尔类型变量/常量
只有两个值:true、false。(不可用0或非0表示)
boolean a = true;
运算符
1、算数运算符
整数类型:
1、如果两个操作数有一个为long,则结果也为long;
2、没有long时,结果为int;
浮点类型:
1、如果两个操作数有一个为double,则结果为double;
2、只有两个操作数都为float,则结果才为float。
2、取模运算
“余数”符号和左边操作数相同。
如:-7 % 3 = -1 。
3、赋值运算符
4、关系运算符
运算结果只有 true 和 false。
5、逻辑运算符
6、位运算
System.out.println(3 << 2); //相当于 3 * (2 ^ 2) = 12,输出12
System.out.println(12 >> 1); //相当于 12 / (2 ^ 1) = 6,输出6
7、字符串连接符(+)
‘+’ 号两边有一个为String类型,则整体为String类型。
String a = "3";
int b = 4;
int c = 5;
System.out.println(a + b); // 输出 34
System.out.println(c + b); //输出 9
System.out.println(c + b + a); //输出93(9"3")
System.out.println(a + b + c); //输出345 ("3""4""5")
char d = 'a';
System.out.println(d + 4); //输出101 (97 + 4)
8、条件运算符
语法格式:
x ? y : z // x 为布尔运算,若运算结果true,结果则为y;反之,结果则为z
运算符优先级
强制类型转换
double x = 3.14;
int nx = (int)x; //值为3
char c = 'a';
int d = c + 1; // 97 + 1
System.out.println((char)d); // 输出 b
溢出
int money = 1000000000;
int years = 20;
int total = money * years; //返回的total将会是负数(超出了int型的范围,溢出)
long total1 = money * years; //因为money和years依旧为int型,返回的total1依旧溢出
long total2 = (long)money * years; //将money转为long型,years同时也被转化,返回的total2没有溢出
Scanner键盘输入
需要调用 java.util.Scanner包。
运用:
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();
选择结构
double d = Math.random(); //返回 [0, 1] 之间的随机数
double r = 1;
double a = Math.PI*Math.pow(r,2); //Math.pow(r,2) r的2次方
单选择结构
if (/*条件*/){
}
双选择结构
if (){
}
else{
}
多选择结构
if (){
}
else if (){
}
else if (){
}
else (){
}
switch多选择结构
switch (/* 变量 */){
case /*值1*/ : /*表达式*/;break; //其他行一样
default:
/*表达式*/
break;
}
循环结构
while循环
while (布尔表达式){
循环体;
}
do-while循环
do {
循环体;
} while(布尔表达式); //先执行,后判断
for循环
for (初始化语句1, 语句2, 语句3...; 判断语句; 步进迭代1, 2, 3...) {
循环体;
}
System.out.println(); //println中‘ln’换行
System.out.print(); //不换行