Math.PI表示圆周率π Math封装了数学运算的一些常量和算数方法
shortcomings:
- 没有尝试多种解决方式
- 变量命名还是不规范
运算符:
- 条件(比较)运算符:运算的结果是boolean类型。值只有两个 true false 比如:< > <= >= == !=
public static void main(String[] args) {
Scanner key=new Scanner(System.in);
System.out.println("请输入第一个整数");
int num1=key.nextInt();
System.out.println("请输入第二个整数");
int num2=key.nextInt();
System.out.println(num1>num2);
System.out.println(num1<num2);
System.out.println(num1>=num2);
System.out.println(num1<=num2);
System.out.println(num1!=num2);
key.close();
}
- 位运算符:| (或):左右两边有一边为true 整个结果为true 。 &(与):左右两边都为为true 结果才为true。
public static void main(String[] args) {
Scanner key=new Scanner(System.in);
System.out.println("请输入第一个整数");
int num1=key.nextInt();
System.out.println("请输入第二个整数");
int num2=key.nextInt();
System.out.println(num1<num2|num1==num2);
System.out.println(num1<num2&num1==num2);
key.close();
}
小面试题:3|4=?
数字转换为2进制进行或运算
3转换为二进制: 0011
4转换为二进制 :0100
3|4运算后结果: 0111
0111转换十进制为:7
public static void main(String[] args) {
System.out.println(3|4);
}
3&4=?
数字转换为2进制进行与运算
3转换为二进制: 0011
4转换为二进制 :0100
3&4运算后结果:0000
0000转换十进制为:0
public static void main(String[] args) {
System.out.println(3&4);
}
| 或,左右两边都是整数时,按位或(先将整数转换为二进制,然后再将二进制按位或,有1为1,最后将结果转换为十进制)。
& 与,左右两边都是整数时,按位与(先将整数转换为二进制,然后再将二进制按位与,全1为1,最后将结果转换为十进制)。
- 逻辑运算符:||(或):左右两边有一边为true 整个结果为true 。 &&(与):左右两边都为为true 结果才为true。
小笔试题:
下列运算结果是的多少
int x=1;
int y=2;
int z=3;
boolean ok=x++<y++|++y<z++;//单个或
System.out.println(ok);
System.out.println("x="+x);
System.out.println("y="+y);
System.out.println("z="+z);
int x=1;
int y=2;
int z=3;
boolean ok=x++<y++||++y<z++;//双个或
System.out.println(ok);
System.out.println("x="+x);
System.out.println("y="+y);
System.out.println("z="+z);
由此可以看出:|和||的区别
||具有短路的功能,即前面判断为true后面不再进行判断。前面为false会继续执行后面的。
&和&&的区别小实验,输出后面的注释是输出后的结果
int x=1;
int y=2;
int z=3;
boolean ok=x++>y++&++y>z++;
System.out.println(ok);//false
System.out.println("x="+x);//2
System.out.println("y="+y);//4
System.out.println("z="+z);//4
int x=1;
int y=2;
int z=3;
boolean ok=x++>y++&&++y>z++;//双个&&
System.out.println(ok);//false
System.out.println("x="+x);//2
System.out.println("y="+y);//3
System.out.println("z="+z);//3
由此可以看出:&和&&的区别
&&具有短路的功能,前面判断为false后面的不再进行判断。
所以&&和||都具有短路的功能
自增和自减
自增:前++ 比如:++j 表示:先自加1,在参与运算 。后++ 比如:j++ 表示:先参与运算 ,在自加1。
自减:前-- 比如:–j 表示:先自减1,在参与运算 。后-- 比如:j-- 表示:先参与运算 ,在自减1。
自增
public static void main(String[] args) {
int i1=1;
int i2=1;
int j1=i1++;
int j2=++i2;
System.out.println("j1="+j1);
System.out.println("j2="+j2);
System.out.println("i1="+i1);
System.out.println("i2="+i2);
}
自减
public static void main(String[] args) {
int i1=1;
int i2=1;
int j1=i1--;
int j2=--i2;
System.out.println("j1="+j1);
System.out.println("j2="+j2);
System.out.println("i1="+i1);
System.out.println("i2="+i2);
}
- 三目运算符 格式:条件表达式?值1:值2;
条件表达式:有条件运算符组成,判断的结果为true或false,true执行值1,false执行值2
注意:值1和值2的数据类型必须一致。 数据发生自动转换后的数据类型一致也可以
public static void main(String[] args) {
Scanner key=new Scanner(System.in);
System.out.println("请输入你的年龄:");
int age=key.nextInt();//输入的是20
//String是java中的字符串
String say=age>18?"可以进入":"禁止进入";
System.out.println(say);//输出 可以进入
key.close();
}
java中的字符串:String
小面试:String是基本数据类型吗?
答:不是,基本数据类型就8个,byte short int long char float double boolean,String是引用数据类型。
字符型 char
格式:char c='W';
char类型的字符,用单引号包裹,只能放单个字符。
String:一串字符序列,用双引号包裹
格式:String c="正在看的你,说的就是你,最亮的仔,别不好意思!";
字符串常用方法:
- 获取字符串的长度,格式:
字符串的变量名.length();
- 获取字符串中某个位置上的字符,格式:字符串的变量名.charAt(位置);位置从0开始到最大长度-1;
- 获取字符串某个字符第一次出现的位置,格式:字符串的变量名.indexOf(字符串或字符);找不到返回-1
public static void main(String[] args) {
String c="正在看的你,说的就是你,最亮的仔,别不好意思!";
int length=c.length();//计算字符串c的长度并赋值给c
System.out.println(length);//输出23
System.out.println(c.charAt(c.length()-1));//取出最后一个元素
//输出!的位置 ,下标从0开始到c.length()-1
System.out.println(c.indexOf("!"));//22
}
接收字符串 `Scanner key=new Scanner(System.in);
- key.next() 扫描到空字符串时就会结束扫描 例如: as yu只接收到as
- key.nextline() 例如: as yu接收到as yu
比较字符串,
格式:字符串1.equals(字符串2),返回值是boolean类型,true或false
区分大小写
格式:字符串1.equalsIgnoreCase(字符串2);
忽略大小写
java中的分支语句
package day03;
import java.util.Scanner;
/**
* java中的分支语句- if
* 作用:条件判断
* 格式1:
* if(条件表达式){
* //代码块
* }
* 表示:如果条件表达式成立,结果为true,就会执行代码块,否则就不执行
*
* 格式2:
* if(条件表达式){
* //代码块1
* }else{
* //代码块2
* }
* 表示:如果条件表达式成立,结果为true,就会执行代码块1,否则就执行代码块2
*@author DEYOU
*/
public class IfDemo {
public static void main(String[] args) {
Scanner key=new Scanner(System.in);
System.out.println("你是帅气的小猪猪扣1,还是漂亮的美羊羊扣2");
int answer=key.nextInt();//2
if(answer==1) {
System.out.println("最亮的仔");
}
if(answer==1) {
System.out.println("最亮的仔仔");
}else{
System.out.println("^-^");//输出
}
key.close();
}
}
小作业:尝试if语句的嵌套(在if语句中在嵌套if语句)
模拟用户的登录:
假设数据库中有用户名为username=“zsf” 密码password=“wazwj”
- 键盘输入用户名和密码
- 判断用户是否登录成功
public static void main(String[] args) {
String store;
String userName="zsf";
String password="wazwj";
Scanner key=new Scanner(System.in);
System.out.println("请输入你的账户名:");
String username=key.next();
System.out.println("请输入你的密码:");
String cipher=key.next();
if(userName.equals(username)) {
if(password.equals(cipher)) {
store="登陆成功!";
}else {
store="密码错误!";
}
}else{
store="账号错误!";
}
System.out.println(store);
key.close();
}