语言基础day03(运算符:算术、关系、逻辑、赋值;字符串的拼接;分支结构:if、if-else)

一、运算符:运算的符号

算术运算符:运算的符号

  • 算术:+,-,*,/,%,++,–
  • %:取余/取模,余数0为即为整除
    取余数的时候,余数的符号要与被除数的符号一致
-10%(-3)	//-1
  • ++/–:自增/自减,可在变量前也可在变量后
    1、单独使用时,在前在后都一样
    2、被使用时,在前在后不一样
    a++的值为a——(a–的值为a)
    ++a的值为a+1——(–a的值为a-1)
    关键是:赋值和运算的先后顺序

int j = i++;
a++在参与操作时),先把它的值赋给前面的j(存到了内存空间),然后再进行计算(本身的自增或者自减也是计算)

int j = ++j;
++a在参与操作时,先进行计算(本身的自增或者自减也是计算),再把操作结果赋给j

System.out.println(8%2);	//0,商4余0——整除
System.out.println(5%2);	//2,商2余1
System.out.println(2%8);	//2,商0余2

//++单独使用
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;
int c = a++; //1)保存a++的值5  2)a自增1变为6  3)将第1步保存的值5赋值给c--底层运算过程
//---粗暴记法:a++的值为5,c就是5
int d = ++b; //1)保存++b的值6  2)b自增1变为6  3)将第1步保存的值6赋值给d--底层运算过程
//---粗暴记法:++b的值为6,d就是6
System.out.println(a); //6
System.out.println(b); //6
System.out.println(c); //5
System.out.println(d); //6

//--单独使用:
int a=5,b=5;
a--; //相当于a=a-1
--b; //相当于b=b-1
System.out.println(a); //4
System.out.println(b); //4

//--被使用:
int a=5,b=5;
int c = a--; //a--的值为5,所以c的值为5
int d = --b; //--b的值为4,所以d的值为4
System.out.println(a); //4
System.out.println(b); //4
System.out.println(c); //5
System.out.println(d); //4

关系运算符:>,<,>=,<=,==,!=

关系的运算结果为boolean型
关系成立则为true,关系不成立则为false
强调:区分符号==判断相等,=赋值

逻辑关系运算符L:&&,||,!

逻辑运算建立在关系运算的基础上的,逻辑结果也是boolean型

  • &&:短路与(并且),两边都为真则为真,见false则false

    当第1个条件为false时,发生短路(后面的不执行了)

  • ||:短路或(或者),有真则为真,见true则true

    当第1个条件为true时,发生短路(后面的不执行了)

  • !:逻辑非(取反),非真则假,非假则真

int a=5,b=10,c=5;
//&&的演示:
boolean b1 = b>=a && b<c;
System.out.println(b1);          //true&&false=false
System.out.println(b<=c && b>a); //false&&true=false
System.out.println(a==b && c>b); //false&&false=false
System.out.println(b!=c && a<b); //true&&true=true
int age = 25;
System.out.println(age>=18 && age<=50); //看age是否在18到50之间

//||的演示:
System.out.println(b>=a || b<c); //true||false=true
System.out.println(b<=c || b>a); //false||true=true
System.out.println(b!=c || a<b); //true||true=true
System.out.println(a==b || c>b); //false||false=false
int score = 89;
System.out.println(score<0 || score>100); //看score是否不合法

//!的演示
boolean b2 = !(a<b);
System.out.println(b2);     //!true=false
System.out.println(!(a>b)); //!false=true

//短路的演示
int a=5,b=10,c=5;
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,发生短路了

赋值运算符:=,+=,-=,*=,,/=,%

  • 简单赋值运算符:=
  • 拓展运算符:+=,-=,*=,/=,%=
    注意:拓展运算符自带强转功能
int a = 5;
a += 10;	//相当于a = (int)(a+10)
System.out.println(a);	//15
a *= 2;	//相当于a = (int)(a*2)
System.out.println(a);	//30
a /= 6;	//相当于a = (int)(a/6)
System.out.println(a);	//5

//小面试题
short s = 5;
//s = s+10;	编译错误,需要强制转换:s = (short)(s+10);
s += 10;	//相当于s = (short)(s+10)拓展运算符自带强制转换功能,所以此处不会报错

重点:运算符的优先级问题
在这里插入图片描述

字符串的连接:+

  • 若两边为数字,则做加法运算
  • 若两边出现了字符串,则做字符串的连接
  • 任何字符与字符串连接,结果都会变为字符串类型——同化作用
//字符串拼接演示
int age = 38;
System.out.println("age="); //age=
System.out.println(age);    //38
System.out.println("age="+age); //age=38
System.out.println("我的年龄是"+age); //我的年龄是38
System.out.println("我今年"+age+"岁了"); //我今年38岁了

String name = "WKJ";
System.out.println("name="+name); //name=WKJ
System.out.println("大家好,我叫"+name); //大家好,我叫WKJ
System.out.println("大家好,我叫"+name+",今年"+age+"岁了"); //大家好,我叫WKJ,今年38岁了

//同化作用演示
System.out.println(10+20+30+"");	//60————————String
System.out.println(10+20+""+30);	//3030——————String
System.out.println(""+10+20+30);	//102030————String

补充:""双引号中任何东西不写,叫做空字符串

条件/三目运算符

1、语法:
boolean?数1:数2
2、执行过程

注:整个表达式是有值的,它的值要么是?号后的数1,要么是:号后的数2,执行了其中一个数的操作就不再执行另外一个数的操作了(区分各自操作的范围)

计算boolean的值:
若为true,则整个表达式的值为?号后的数1
若为false,则整个表达式的值为:号后的数2

面试题:这个题是一个典型的三目运算符套一个三目运算符的操作,关键点是区分数1和数2 各自的范围
数1:false
数2:true==true?false:true
因为boolean赋值为true,所以执行数1也就是false,所以输出false
在这里插入图片描述

int num = 5;
int flag = num>0?1:-1;
System.out.println(flag); //1

int a=8,b=55;
int max = a>b?a:b;
System.out.println("max="+max);

二、分支结构:基于条件执行某语句

if结构:1条路

  1. 有大括号的时候 大括号里面所有的 都归if管。只有条件为真的时候 才会执行。
  2. 没有大括号的时候 只有下面的 一句 归if管,此时if语句后面也没有; 也就是说 当只有一句的时候 大括号可以省略 其它的 没区别
  • 语法:

    if(boolean){
    语句块
    }

  • 执行过程:

    ​ 判断boolean的值:
    ​ 若为true,则执行语句块1(if整个结束)
    ​ 若为false,则if直接结束

//1)偶数的判断
int num = 5;	//带数(6,5)
if(num%2==0){
	System.out.println(num+"是偶数");
}
System.out.println("继续执行...");

//2)满500打8折:
double price = 300.0;	//消费金额 带数(600.0,300.0)
if(price>=500){	//满500
	price *= 0.8;
}
System.out.println("最终结算金额为:"+price);

//3)判断年龄是否再18到50之间,若满足则输出:"满足条件"
int age = 88;	//带数(25,5,88)
if(age >= 18 && age <= 50){
	System.out.println("年龄满足条件");
}
System.out.println("继续执行...");

if…else结构:2条路

  • 语法:

    ​ if(boolean){
    ​ 语句块1
    ​ }else{
    ​ 语句块2
    ​ }

  • 执行过程:

    ​ 判断boolean的值:
    ​ 若为true,则执行语句块1(整个结束)
    ​ 若为false,则执行语句块2(整个结束)

  • 说明:

    ​ 语句块1和语句块2,必走其中之一------------2选1

//1)偶数、奇数的判断:
int num = 5;  //带数(6,5)
if(num%2==0){
    System.out.println(num+"是偶数");
}else{
    System.out.println(num+"是奇数");
}
System.out.println("继续执行...");

//2)满500打8折,不满500打9折:
double price = 300.0;  //带数(600.0,300.0)
if(price>=500){ //满500
    price *= 0.8;
}else{ //不满500
    price *= 0.9;
}
System.out.println("最终结算金额为:"+price);

//3)判断成绩是否合法,合法则输出"该成绩合法",否则输出"该成绩不合法":
int score = 560; //带数(95,-90,560)
if(score<0 || score>100){
    System.out.println("该成绩不合法");
}else{
    System.out.println("该成绩合法");
}
System.out.println("继续执行...");

每日英语:

1)Scanner/scan:扫描仪
2)import:引入、导入
3)System:系统
4)in:进入
5)new:新的
6)nextInt:下一个整数
7)nextDouble:下一个浮点数
8)switch:开关
9)case:案例
10)break:中断、退出
11)command:命令
12)by:通过
13)times:次数
14)while:...的时候,循环的一种
15)do:做、干
16)math:数字
17)random:随机
18)guess/guessing:19)game:游戏
20)level:等级
21)count:数量
22)String:字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值