回顾:
1.变量:存数的
int a; int b,c,d;
int a = 5; int a; a = 5;
int b = a+10; System.out.println(b); //15
a = a+10;
2.八种基本数据类型:byte,short,int,long,float,double,boolean,char
1)int:整型,4个,5,25,250…
2)long:长整型,8个,5L,1000000000000000L…
3)double:浮点型,8个,3.14,25.678,45.0…
4)boolean:布尔型,1个,true,false
5)char:字符型,2个,‘你’,‘d’,‘2’,’*’,’’’…
3.数据类型间的转换:
1)两种方式:
1.1)自动/隐式类型转换:小到大
1.2)强制类型转换:大到小 (要转换成为的数据类型)变量
强转有可能溢出或丢失精度
2)两点规则:
short s1 = 5;
short s2 = 6;
short s3 = (short)(s1+s2);
正课:
1.运算符:
1)算术运算符:+,-,/,%,++,–
2)关系运算符:>,<,>=,<=,==,!=
3)逻辑运算符:&&,||,!
4)赋值运算符:=,+=,-=,=,/=,%=
5)字符串连接运算符:+
6)条件/三目运算符:boolean?数1:数2
2.分支结构:基于条件执行某语句
1)if结构: 1条路
2)if…else结构: 2条路
if(boolean){
语句块
}
boolean flag = true;
if(flag){
}
int a = 5;
if(a>2){
}
int a = 5;
if(a>2 && a<10){
}
满500打8折,不满500不打折--------------if
满500打8折,不满500打9折---------------if…else
满足条件就干事,不满足条件就不干事--------------if
满足条件就干事,不满足条件干另一件事------------if…else
任何复杂的程序逻辑都可以通过三种结构来实现:
1)顺序结构:从上往下逐行执行,每句必走
2)分支结构:有条件的执行某语句,并非每句必走
3)循环结构:
打8折----------------基于条件执行的
减100----------------基于条件执行的
满500打8折
满199减100
char:字符型,单引号中,只能有1个
String:字符串型,双引号中,0个到多个
“”
“女”
“hello”
“djfl;skdajf;ladfkjas;lfdkja;lsfdk”
System.out.println(“helloworld”);
API-----------第一天讲String
字符串有同化作用--------任何数据与字符串一连,结果都是字符串类型了
三个条件,是并且的关系
性别为男+第2条件+第3条件
! false true
下雨了? true false
能否结账? true true true false
1)有现金吗? true false true false
或者—||
2)有微信吗? false true true false
能否毕业? false false false true
1)考试及格吗? true false false true
并且—&&
2)出勤率够80%吗? false true false true
若想干某件事是由一个条件控制的------------------关系运算符
成绩>=60
若想干某件事是由多个条件控制的------------------逻辑运算符
成绩>=60 并且 出勤率>=80%
boolean
A的年龄大于B的年龄------------------对/错
>,<
A的体重小于或等于B的体重------------对/错
<=,>=
A的身高等于B的身高------------------对/错
==,!=
1.算术运算符: +,-,,/,%,++,–
* 1)%:取模/取余,余数为0即为整除
* /
System.out.println(5%2); //1,商2余1
System.out.println(8%2); //0,商4余0--------整除
System.out.println(2%8); //2,商0余2
/
* 2)++/–:自增1/自减1,可在变量前也可在变量后
* 2.1)单独使用时,在前在后都一样
++ /自增 /*
int a=5,b=5;
a++; //相当于a=a+1
++b; //相当于b=b+1
System.out.println(a); //6
System.out.println(b); //6
/
–/自减
/
int a=5,b=5;
a–; //相当于a=a-1
–b; //相当于b=b-1
System.out.println(a); //4
System.out.println(b); //4
*/
* 2.2)被使用时,在前在后不一样
* a++的值为a---------(a--的值为a)
* ++a的值为a+1-------(--a的值为a-1)
*/
int a=5,b=5;
//1)将a++的值5赋值给c
//2)a自增1变为6
int c = a++;
//1)将++b的值6赋值给d
//2)b自增1变为6
int d = ++b;
System.out.println(a); //6
System.out.println(b); //6
System.out.println©; //5
System.out.println(d); //6
*/
int a=5,b=5;
int c = a–;
int d = --b;
System.out.println(a); //4
System.out.println(b); //4
System.out.println©; //5
System.out.println(d); //4
*/
2.关系运算符:
* 1)>(大于),<(小于)
* >=(大于或等于),<=(小于或等于)
* ==(等于),!=(不等于)
* 2)关系运算的结果为boolean型
* 关系成立则为true,关系不成立则为false
*/
/*
int a=5,b=10,c=5;
boolean b1 = a>b;
System.out.println(b1); //false
System.out.println(c<b); //true
System.out.println(a>=c); //true
System.out.println(a<=b); //true
System.out.println(a==c); //true
System.out.println(a!=c); //false
System.out.println(a+c>b); //false
System.out.println(a%2==0); //false
System.out.println(a++>c); //false----同时a自增1变为6
System.out.println(a++>c); //true
*/
3.逻辑运算符:
* 1)&&:短路与(并且),两边都为真则为真,见false则false
* ----当第1个数为false时,则发生短路(后面的不执行了)
* ||:短路或(或者),有真则为真,见true则true
* ----当第1个数为true时,则发生短路(后面的不执行了)
* !:逻辑非(取反),非真则假,非假则真
* 2)逻辑运算是建立在关系运算的基础之上的
* 逻辑运算的结果也是boolean型
/
/
int a=5,b=10,c=5;
boolean b1 = b>=a && c>b;
System.out.println(b1); //true&&false=false
System.out.println(b<=c && b>a); //false&&true=false
System.out.println(a==b && b<c); //false&&false=false
System.out.println(a!=b && c<b); //true&&true=true
System.out.println(b>=a || c>b); //true||false=true
System.out.println(b<=c || b>a); //false||true=true
System.out.println(a!=b || c<b); //true||true=true
System.out.println(a==b || b<c); //false||false=false
boolean b2 = !(a>b);
System.out.println(b2); //!false=true
System.out.println(!(a<b)); //!true=false
boolean b3 = a>b && c++>2;
System.out.println(b3); //false
System.out.println(c); //5,发生短路了
boolean b4 = a<b || c++>2;
System.out.println(b4); //true
System.out.println(c); //5,发生短路了
*/
/*
* 4.赋值运算符:
* 1)简单赋值运算符:=
* 2)扩展赋值运算符:+=,-=,*=,/=,%=
* ----自带强转功能
/
/
int a = 5;
a += 10; //相当于a=(int)(a+10)
System.out.println(a); //15
a = 2; //相当于a=a2
System.out.println(a); //30
a /= 6; //相当于a=a/6
System.out.println(a); //5
//面试题:
short s = 5;
s += 10; //正确,相当于s=(short)(s+10)
//s = s+10; //编译错误,需强转
*/
/*
* 5.字符串连接运算符:
* 1)+:
* 1.1)若两边为数字,则做加法运算
* 1.2)若两边出现了字符串,则做字符串连接
*/
int age = 37;
System.out.println("age="); //age=
System.out.println(age); //37
System.out.println("age="+age); //age=37
System.out.println("我的年龄是"+age); //我的年龄是37
System.out.println("我今年"+age+"岁了"); //我今年37岁了
String name = "WKJ";
System.out.println("大家好,我叫"+name); //大家好,我叫WKJ
System.out.println("大家好,我叫"+name+",今年"+age+"岁了"); //大家好,我叫WKJ,今年37岁了
System.out.println(10+20+""+30); //3030------String
System.out.println(""+10+20+30); //102030----String
System.out.println(10+20+30+""); //60--------String
/*
* 6.条件/三目运算符:
* 1)语法:
* boolean?数1:数2
* 2)执行过程:
* ----整个表达式的值要么是?号后的数1,要么是:号后的数2
* ----到底值为谁,看前面的boolean
* 判断boolean的值:
* 若为true,则整个表达式的值为?号后的数1
* 若为false,则整个表达式的值为:号后的数2
*/
/*
int num = 0;
int flag = num>0?1:-1;
System.out.println(flag); //-1
int a=8,b=5;
int max = a>b?a:b;
System.out.println(max); //8
*/
2.分支结构:基于条件执行某语句
1)if结构: 1条路
* 1)语法:
* if(boolean){
* 语句块
* }
* 2)执行过程:
* 判断boolean的值:
* 若为true,则执行语句块(整个结束)
* 若为false,则直接结束
*/
//1)偶数的判断:
int num = 6; //6, 5
if(num%2==0) {
System.out.println(num+“是偶数”);
}
System.out.println(“over”);
//2)满500打8折,不满500不打折
double price = 600.0; //消费金额 600.0, 300.0
if(price>=500) { //满500
price *= 0.8; //打8折
}
System.out.println("最终消费金额为:"+price);
2)if…else结构: 2条路
1)语法:
* if(boolean){
* 语句块1
* }else{
* 语句块2
* }
* 2)执行过程:
* 判断boolean的值:
* 若为true,则执行语句块1(整个结束)
* 若为false,则执行语句块2(整个结束)
* 3)结论:
* 语句块1和语句块2,必走其中之一
*/
//问:语句块1和语句块2,有可能同时执行吗?---------不可能
//问:语句块1和语句块2,有可能同时都不执行吗?-----不可能
}
}
//1)偶数、奇数的判断:
int num = 5; //6, 5
if(num%2==0) {
System.out.println(num+“是偶数”);
}else {
System.out.println(num+“是奇数”);
}
System.out.println(“over”); //晚上7点开始晚课
//2)满500打8折,不满500打9折
double price = 300.0; //消费金额 600.0, 300.0
if(price>=500) { //满500
price *= 0.8; //打8折
}else { //不满500
price *= 0.9; //打9折
}
System.out.println("最终消费金额为:"+price);