学习Java第二天
程序员文章站
2022-07-13 14:00:46
...
2020/7/22
1.运算符
1.算数运算符
+ - * / %
java中整数计算的结果还是整数
public class Demo{
public static void main(String[] args){
System.out.println(10 + 20);
System.out.println(10 - 20);
System.out.println(10 * 20);
System.out.println(10 / 3);
System.out.println(10 % 3);
System.out.println(7 % 10);
System.out.println(13 % 5);
}
}
2.字符+操作
字符在计算机底层都是数字
加法运算,在字符加数字的情况下,结果会变成一个数字
System.out.println('a' + 1); //98 'a' --> 97
System.out.println('A' + 1); //66 'A' --> 65
System.out.println('0' + 1); //49 '0' --> 48
System.out.println('我'+ 1); //25106 '我'--> 25105
‘a’ 97
‘A’ 65
‘0’ 48
3.字符串+操作
-
字符串遇到+就不是加法运算了,是拼接效果。
字符串和任何类型连接都会变成一个更大的字符串。
public class Demo{
public static void main(String[] args){
System.out.println("黑马" + 66 + 6);
System.out.println(99 + 1 + "黑马");
System.out.println("黑马" + (66 + 6));
//10 + 20 = 30
System.out.println("10"+" + "+"20"+" = "+"30");
int a = 6;
System.out.println(a + "+" + a + "=" + (a+a));
}
}
4.赋值运算符
= += -= *= /= %=
// 把10赋值给int类型的变量a
int a = 10;
//常量优化机制(整数常量赋值的时候只关注数值大小,不关注类型)
short s = 10;
//把int类型复制给short类型,不可以
//s = s + 20;不可以
//s = (short)(s + 20);可以
//扩展的复制运算符隐含强制转换
s += 20;
System.out.println(s);
扩展的复制运算符隐含强制转换
5.自增自减运算符
++(给变量自身加一) --(给变量自身减一)
++前置:
++a;
先加一,后运算
后置++:
a++;先运算,后加一
public class Demo{
public static void main(String[] args){
//单独使用,不涉及运算,前置后置效果一样
//int a = 10;
//a++;
//++a;
//System.out.println(a);
//int a = 10;
//先把a的值赋值给b,然后a自身再加一
//int b = a++;
//System.out.println(a);//11
//System.out.println(b);//10
//int a = 10;
//先把a的值赋值给b,然后a自身再加一
//int b = ++a;
//System.out.println(a);//11
//System.out.println(b);//11
int a = 10;
int b = 20;
// 10 + 21
int c = a++ + ++b;
System.out.println(c);
}
}
6.关系运算符
> < == >= <= !=
关系运算符的结果一定是boolean类型
=是赋值 ==是判断相等 千万不要把 == 写成 =
7.逻辑运算符
& 与
左右都是true,结果是true,否则是false
| 或
左右都是false,结果false,否则是true
^ 异或
两边相同是false,两边不同是true
! 非
&&:短路与
如果左边是false,右边不执行
||:短路或
如果左边是true,右边不执行
public class Demo{
public static void main(String[] args){
int a = 10;
int b = 20;
System.out.println(a++ > 10 & ++b > 20);//false&true --> flase
//上一行运行完a为11,b为21
System.out.println(a++ > 10 & ++b > 21);//true|flase --> true
}
}
public class Demo{
public static void main(String[] args){
int a = 10;
//int b = 20;
//System.out.println(a++ > 10 & ++b > 20);//false&true --> flase
//上一行运行完a为11,b为21
//System.out.println(a++ > 10 & ++b > 21);//true|flase --> true
System.out.println(true ^ true); //flase
System.out.println(false ^ true); //true
System.out.println(true ^ false); //true
System.out.println(false ^ false); //flase
System.out.println(!(a>20));
System.out.println(!!(a>20));
int c = 10;
int d = 20;
System.out.println(c++ > 10 && ++d >20);
System.out.println(++d > 21 || c++ >10);
System.out.println(c);
System.out.println(d);
}
}
8.三元运算符
格式:
数据类型 变量名 = 关系表达式 ? 表达式1 :表达式2;
流程:
如果关系表达式是true,就把表达式1赋值给变量
如果关系表达式是false,就把表达式2赋值给变量
运算符优先级
//运算符是有优先级 && > ||
System.out.print(true || true && flase);//true
//加括号手动标识清楚
2.键盘输入
让使用者通过键盘输入一些数据,今天只取学习输入整数
1.导包
import java.util.Scanner;
2.创建对象
Scanner sc = new Scanner(System.in);
3.接收数据
int i = sc.nextInt();
import java.util.Scanner;
public class Demo{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
int a = sc.nextInt();
System.out.println("请输入一个整数");
int b = sc.nextInt();
int m = a > b? a : b;
System.out.println("较大值是:" + m);
}
}
3.流程控制语句
顺序结构、分支结构和循环结构
1.if语句
格式:
if(条件判断){
语句体;
}
流程:
如果条件判断为true,则执行语句体。
如果条件判断的结果是false,语句体就跳过不执行.
public class Demo{
public static void main(String[] args){
int a = 10;
System.out.println("开始");
if(a>20){
System.out.println(a+"大于20");
}
System.out.println("结束");
}
}
2.if…else语句
格式:
if(条件判断){
语句体1;
}else{
语句体2;
}
流程:
如果条件判断的结果是true,就执行语句体1
如果条件判断的结果是false,就执行语句体2
两个语句体一定会执行一个,互斥判断
-
求三个数的较大值
int a = 10; int b = 25; int c = 20;
public class Demo{ public static void main(String[] args){ int a = 30; int b = 25; int c = 70; int d = 0; if(a > b){ d = a; }else{ d = b; } if(c > d){ System.out.println("较大值是:" + c); }else{ System.out.println("较大值是:" + d); } } }
3.if…else if…语句
格式:
if(条件判断1){
语句体1;
}else if(条件判断2){
语句体2;
}else if(条件判断3){
语句体3;
}else{
语句体5;
}
流程:
如果条件判断1的结果是true,就执行语句体1,别的不会执行了。
如果条件判断1的结果是false,就会继续条件判断2,如果判断2的结果是true,就执行语句体2,别的不会执行了。
如果所有的if结果都是false,就执行else里面的语句体4
注意:
else if()可以写任意多个,最后的else可以不写,也叫做是多分支判断,多个之中选一个执行。
import java.util.Scanner;
public class Demo{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int a = sc.nextInt();
if(a>=0 && a<60){
System.out.println("奖励大嘴巴子");
}else if(a>=60 && a<70){
System.out.println("奖励辣条一份");
}else if(a>=70 && a<80){
System.out.println("奖励手机一个");
}else if(a>=80 && a<=100){
System.out.println("奖励房子一套");
}else{
System.out.println("gun");
}
}
}