运算符
注释
// 单行注释
/* 多行注释*/
/** 文档注释 */
关键字
系统赋予特定含义,在editplus是蓝色字体,全小写
public class
保留字
goto const
关键字:
整数:byte short int long
小数:float double
字符:char
逻辑:boolean true false
String 字符串,不是关键字,不是基本数据类型,是引用数据类型
标识符
public class HelloWorld{//类名
public static void main(String[] args){
int a=10;//变量名
}
}
自己取名字的那个单词就是标识符
标识符规则:
字母数字下划线美元符号组成、
区分大小写
不能使用关键字和保留字
数字不能开头
中文¥一般可以通过编译,开发禁用!
类在开发中规范:单词的首字母大写 HelloWorld
变量命名:第一个单词全小写,第二个单词开始首字符大写 getName
变量的四种写法(重点)
public class Hello{
public static void main(String[] args){
//第一种
int i;
i=1;
//第二种
int j=1;
//第三种
int a,b;
a=1; b=2;
//第四种
int m=1,n=2;
}
}
八种数据类型创建变量,需要注意什么问题(重点)
byte short int long float double char boolean
long m=10L;
float n=5f;
char a=97;//一般不这么写
char b='#';
---------------------------
int
double
String
类型转换(重点)
byte short(char) int long float double
自动类型转换
byte a=10;
int b=a;
double a1=b;
强制类型转换
int c=100;
byte d=(byte)c;
//溢出
int f=200;
byte a=(byte)f;
//精度丢失
double t=10.9;
int t1=(int)t;
其他类型转换
short和char
0到3万多
byte shrot char 只要参与运算,就首先提示为int类型
如果两个数据类型不同进行运算,结果一定是大的类型
一、print和println区别?
第一个区别:
println是先输出内容,然后换行(Enter)
print 不换行一行输出
第二个区别:
println()小括号可以什么都不写
print()小括号必须写内容,不写就报错
二、println()小括号可以写那些内容
package cn.E_106.JavaSe.day04.print02;
public class Demo {
public static void main(String[] args){
System.out.println("helloWorld...");//字符串字面值
int a=10;
System.out.println(a);//int字面值
System.out.println("----------能输出的必定是某个数据类型的字面值-------------");
System.out.println(110);
System.out.println(3.14);//double字面值
System.out.println('和');//字符类型char字面值
System.out.println(true);//boolean类型字面值
// System.out.println(b);
}
}
三、算术运算符
+ - * / % ++ --
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Demo01 {
public static void main(String[] args) {
//+ 号 三种含义
//1.运算
int a=10;
int b=20;
int c=a+b;
System.out.println(c);
//2.数字的正负
int d=+5;
System.out.println(d);
//3.连接符号
//连接符号是一个字符串和其他数据相加,数据类型一定是字符串类型
String name="小金";
System.out.println("名字:"+name);
System.out.println("年龄:"+18);
System.out.println("性别:"+'男');
// 写出3+5=8;
int m=3,n=5;
System.out.println(m+"+"+n+"="+(m+n)+";");
//- 含义 1.计算,2.正负符号
System.out.println(3-200);
System.out.println(-125);
//*乘号
System.out.println(4*6);
// 除号 /
System.out.println(10/2);
System.out.println(0/5);
//System.out.println(7/0);
//除不尽只会保留整数部分!
System.out.println(7/3);
//==============计算机无法精确计算所有的小数=====================
System.out.println(2.0-1.1);
// % 取模 求余数
System.out.println(7%5);//7除以5的余数是?
System.out.println(1%5);//1
System.out.println(3%5);//3
System.out.println(0%5);//0
System.out.println(2%2);//0
}
}
- ++ –
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Demo02 {
public static void main(String[] args){
//++
//++表示自增1
int a=10;
a++;
System.out.println(a);
int b=10;
++b;
System.out.println(b);
}
}
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Demo03 {
public static void main(String[] args){
// 规律:如果++在变量之前,先自增1,然后再做其它操作(赋值)
// 如果++在变量之后,先做其它操作(赋值),然后再自增1
int a=5;
int b=++a;//先计算++a 然后再赋值给b
System.out.println("a:"+a);
System.out.println("b:"+b);
System.out.println("-------------------");
int c=5;
int d=c++;//先把c赋值给d,然后c自增1
System.out.println("c:"+c);
System.out.println("d:"+d);
}
}
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Demo04 {
public static void main(String[] args){
int a=5;
System.out.println((a++));//++在变量之后,先输出a再自增1
System.out.println(++a);
}
}
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Demo05 {
public static void main(String[] args) {
int a=5;
a=a++;
System.out.println(a);
}
}
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Demo06 {
public static void main(String[] args) {
//-- 以此类推
int a=5;
System.out.println(a--);//5
System.out.println(++a);//5
}
}
补充
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Demo07 {
public static void main(String[] args) {
int i=3;
int j=2;
//int x=i+++j---i+--j-++i+j-i;
// 测试!!!
//不知道i++ +j 还是 i+ ++j的问题?
//做实验,测试!
int x=i+++j;
//假设,i++ +j 它的结果应该是什么呢?
// i+j之后,i再自增1
//x=5 i=4 j=2
//----------------------------------------
//假设,i+ ++j
//j=3 3+3=6 x=6 i=3
System.out.println("i:"+i);
System.out.println("j:"+j);
System.out.println("x:"+x);
}
}
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Demo08 {
public static void main(String[] args) {
int i=3;
int j=2;
int x=i+++j---i+--j-++i+j-i;
/*
(i++)+(j--)
* i+j i自增1 j自减1
* 5 i=4 j=1
* -i
* 1 i=4 j=1
* +(--j)
* j先自减1 然后 结果再加 j
* 1 i=4 j=0
* -(++i)
* i先自增1 然后 结果减去i
* -4 i=5 j=0
* +j-i
*
* -4 +0 -5
*
* -9 i=5 j=0
*
* */
System.out.println("x:"+x);
System.out.println("i:"+i);
System.out.println("j:"+j);
}
}
四、赋值运算符
= += -= /= *= %=
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Demo01 {
public static void main(String[] args) {
// =
int a=10;
//a看成a代表的数据10
a=a;
System.out.println(a);
//+=
int b=5;
b+=2;//b=b+2;
System.out.println(b);
byte m=3;
m+=2;//m=m+2;
//m=(byte)(m+2);
System.out.println(m);
m=+3;
System.out.println(m);
//以此类推
int i=2;
System.out.println(i-=1);
System.out.println(i*=3);//i=i*3
System.out.println(i/=2);//i=i/2
System.out.println(i%=5);//i=i%5;
}
}
五、比较运算符
> < >= <= == !=
5>3-->成立 true
5>20-->不成立 false
比较运算符的结果一定是boolean类型的字面值
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Demo01 {
public static void main(String[] args) {
//> < >= <= == !=
System.out.println(5>3);//true
System.out.println(5<3);//false
System.out.println(5>=5);//true
System.out.println(6<=6);//true
// == 是比较 = 是赋值
System.out.println(7==8);//false
System.out.println(9==9);//true
System.out.println(5!=5);//false
//不同类型的比较 byte short(char) int long float double
int a=20;
double b=20.0;
System.out.println(a==b);
byte c=100;
System.out.println(a>c);
}
}
六、逻辑运算符
| 或者 & 并且 ^异或 !非 ||短路或 &&短路与
比较的结果都是boolean类型的字面值
int a=10;
20>a>5
在java中没有,需要使用上面的连接,主要目的进行多个条件判断
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Demo01 {
public static void main(String[] args) {
// | 或者 & 并且 ^异或 !非 ||短路或 &&短路与
// int a=10;
// System.out.println(20>a & a>5);
// | 或者 左边一个条件,右边一条,只要有一个条件成立,结果就是true
// 两个条件都不成立,结果是false
System.out.println(false | true);//true
System.out.println(3>1 | 5<2);//true
System.out.println(1>5 | 2>7 | 3>1);
// & 并且,与 左边一个条件,右边一个条件,只要有一个不成立,结果就false
// 两个条件都成立,结果是true
System.out.println(true & true);//true
System.out.println(1>1 & 2>0);//false
System.out.println(1>5 & 2>7 & 3>1);//false
// ^ 异或 左边一个条件,右边一个条件,两个条件的结果不同,最终结果true
// 两个条件结果相同,最终结果一定是false
System.out.println(true ^ true);//false
System.out.println(false ^ false);//false
System.out.println(true ^ false);//true
System.out.println(1>1 ^ 2>0);//true
System.out.println(1>5 ^ 2>7 ^ 3>10);//false
// ! 非 不去连接多个条件,把一个条件的结果反向
System.out.println(!true);//false
System.out.println(!!!!!!!true);//false
System.out.println(!(1>5));//false
}
}
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Demo02 {
public static void main(String[] args) {
// || 短路或
// 短路或和或 比较的结果是一样的,只是执行过程不同
// || 第一个条件已经能判断最终的结果,后面条件都不会再执行
// | 第一个条件即使能判断出最终结果,后面条件也需要一个一个判断
// | 或
int a=5;
System.out.println(a>2 | (a=a+2)>5 );
System.out.println(a);//7
// || 短路或
int a1=5;
System.out.println(a1>2 || (a1=a1+2)>5 );
System.out.println(a1);//5
// & 并且,与
int m=5;
System.out.println(m>100 & (m=m*2)>3);
System.out.println(m);
// && 短路与
int n=5;
System.out.println(n>100 && (n=n*2)>3);
System.out.println(n);
}
}
练习
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Test {
public static void main(String[] args) {
int a=5;
int b=10;
System.out.println(b>a && a++>5);//false---- a=6
a=5;
System.out.println(b>a && ++a>5);//true ----a=6
System.out.println(a);
}
}
七、三目运算符
三目更像一个表达式
语法: 数据类型 变量名 = 条件表达式 ? 字面值1 :字面值2;
int a = 3>2 ? 1 : 2;
含义:如果条件表达式结果是true 那么 a的值是1
如果条件表达式结果是false 那么 a的值是2
注意: 语法需要记忆,字面值必须跟数据类型匹配
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Demo01 {
public static void main(String[] args) {
//数据类型 变量名 = 条件表达式?字面值1:字面值2;
//如果考试成绩及格,吃腰子,如果不及格,去洗脚!
double score=69.9;//score变量表示考试分数!
String rs = score>=60 ? "吃腰子" : "去洗脚!";
System.out.println(rs);
// System.out.println(score>=60 ? "吃腰子" : "去洗脚!");
}
}
练习题
求两个变量的最大值?
package cn.E_106.JavaSe.day04.arithmetic_operator;
public class Demo02 {
public static void main(String[] args) {
//求两个数的最大值?
int a=10,b=20;
int max=a>b ? a:b;
System.out.println(max);
//求三个数的最大值?
int x=10,y=20,z=30;
int max2=x>y ? x:y;
int max3=max2>z ? max2:z;
System.out.println(max3);
}
}