Java基础:基本语法(四)

Java基础:基本语法(四)

第四节:运算符和表达式
a + b
3 * 2
整体叫做表达式
a,b,32-->操作数
+*-->运算符
1、运算符的分类
1.算术运算符:+-*/%++--
2.赋值运算符:=+=-=*=/=%=
3.关系运算符:><>=<===!=
4.逻辑运算符:!&|^&&||
5.位运算符:&|^~>><<>>>(了解)
6.字符串连接运算符:+
7.三目运算符 ?:  
2、算术运算符:
运算符运算规则范例结果
+正号+33
+2+35
+连接字符串“中”+“国”“中国”
-负号int a=3;-a-3
-3-12
*2*36
/5/22
%取模5%21
++自增int a=1;a++/++a0
自减int a=3;a–/--a3
  • 使用算术运算符是需要注意

  • 加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。

  • 除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除。

  • “%”取模(取余数),小数取余没有意义。结果符号与被取余符号相同。

  • 算术运算符 ++ , --的使用

  • ++运算符:会在原有值得基础上自增1。

  • –运算符:会在原有值得基础上自减1。


上机练习1 : 有一个三位数,求十位上 的数字   
// 123    2 
int a = 123;
int b = a/10%10;
//		123/10 12%10   2 
int c = a%100/10;
上机练习2int d = 5;
System.out.println((d++));// 自身加1 
System.out.println((d));// 自身加1 
		
int e = d++ + 6;
System.out.println(" =e "+ e);// 自身加1 

// --   放在前面是先自身减一  在参与运算
//     放后面   先参与运算   在自身减一
int f = d-- + 6;
System.out.println(" f =  "+ f);// 自身加1 

byte z = -128;
byte w = --z;// ++  在临界值不会报异常,赋的值是在取值范围内转圈 
System.out.println("w=  "+ w);// 自身加1 	
3、赋值运算符:
运算符运算规则范例结果
=赋值int a=22
+=加后赋值int a=2,a+=24
-=减后赋值int a=2,a-=20
*=乘后赋值int a=2,a*=24
/=整除后赋值int a=2,a/=21
%=取模后赋值int a=2,a%=20
  • 注意:诸如 += 这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型。

    • 注意:赋值运算符左边必须是变量
    • 上面的运算符作用:将等号左右两边计算,会将结果自动强转成等号左边的数据类型,再赋值给等号左边的
int  i = 34;
//i = i + 45;
i+=45;	
i-=45;
        
// i = i -45;
i*=45;
i/=45;
i%=45;		
System.out.println("i= "+ i);
4、关系运算符:
  • 比较运算符,又叫关系运算符,它是用来判断两个操作数的大小关系及是否相等关系的,结果是布尔值true或者false 。

    运算符运算规则范例结果
    ==相等于4==3False
    !=不等于4!=3True
    <小于4<3False
    >大于4>3True
    <=小于等于4<=3False
    >=大于等于4>=3True
boolean b = 3>=3; // 关系运算符 最终的结果都是boolean类型的
boolean b2 = 3==2; // == 判断等号两边是否相等  如果相等就是true
boolean b3 = 3!=2; // != 判断等号两边是否不等   如果不等就是true

System.out.println(b3);	

5、逻辑运算符(重点)
  • 逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false

    运算符运算规则范例结果
    &与,理解为并且false&trueFalse
    |或,理解为或者false|trueTrue
    ^异或true^flaseTrue
    !!trueFlase
    &&短路与false&&trueFalse
    ||短路或false||trueTrue
  • &:与运算,运算规则:多个操作数,如果都为true,结果就为true,有一个为false,结果就为false。

      **一假则假,全真才真**
    
  • |:或运算,运算规则:多个操作数,如果都为false,结果就为false,有一个为true,就为true

      **一真则真,全假才假**
    
  • &&:短路与,遇到一个false就返回结果为false,后面不再计算

  • ||:短路或,遇到一个true就返回结果为true,后面不再计算

  • !:取非,取反

  • ^:异或操作,操作数值不同,结果为真,相同反而为假。

// ==  判断基本数据类型的值 是否相同的   != 判断基本数据类型的值是否不等
// 引用数据类型  equals
int i=30;
boolean flag = i!=34;
System.out.println("flag = "+ flag);

boolean  flag2 = 	false&false;// & 必须是左右两边都是   true 结果才是true   
boolean  a =  false | false;// |  只要有一个true 结果就是true 两边都是false 结果才为false

System.out.println("flag2 = "+ flag2);
System.out.println("a = "+ a);

// &&  ||  有可能有一部分是执行不到的
	
// && 左边如果是 false 就不执行右边  最终结果是false
// || 左边是true 不用执行右边了   最终结果就是 true

int z = 5;
int w = 5;
boolean b = ++z>5 || ++w >5;// w 并没有被执行
System.out.println("b = "+ b+" z="+z+" w="+w);

// ! 逻辑非
boolean e = !true;
System.out.println("e = "+ e);

// ^ 异或    相同则为false  不同为true
boolean  f = true ^ false;
System.out.println("f = "+ f);

int  a = 4;
int c = 5;
boolean b4 = ++a>6 & ++c>3;
System.out.println(a);
System.out.println(c);
6、位运算符(了解)
运算符描述运算符描述
&按位与>>右移
|按位或<<左移
^按位异或>>>无符号右移
~按位取反
7、字符串连接符 +

如果字符串和基本数据类型变量、常量连接以后,结果变成了字符串。

System.out.println("Hello"+"World!");
System.out.println("Hello = "+ 5);// 字符串和基本数据类型变量 常量连接以后 都变成了 字符串
System.out.println("Hello = "+ 5+ 8);
System.out.println(5+"");
8、三目运算符 ? :

X ? Y : Z

X为boolean类型表达式,先计算x的值,若为true,整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。

示例:

//X ? Y : Z
// 1 X 必须是boolean类型表达式
// 2  Y Z 必须数据类型保持一致

int score = 99;
//boolean falg = score>80;
String str = score>80? "非常优秀" : "优秀";
char c = '男';
int i = c=='男'? 5 : (int)(4.0);
//  y 和  z  最好是保持数据类型一致
//  如果不一致  也必须保证 接收的  变量能够存储  y和  z的 数据类型
		
System.out.println(i);
// 需求: 大于90输出"非常优秀“,大于等于60”输出及格“,否则小于60输出”下个班见“
String str2 = score>90?"非常优秀":score>=60?"及格":"下个班见";
System.out.println(str2);
9、表达式
表达式:符合一定语法规则的运算符和操作数的序列 
      
            i % 10
            a = 0 
		   a==0      
            5.0 + a      
         (a - b) * c - 4      
            i < 30 && i % 10 != 0 
      
表达式的值和类型
* 对表达式中操作数进行运算得到的结果称为表达式的值 
* 表达式的值的数据类型即为表达式的类型 
扩展:Scanner的简单使用

需求:从控制台输入学员3门课程成绩(html,java,sql),编写程序实现

​ (1)Java课和SQL课的分数之差

​ (2)3门课的平均分

import java.util.Scanner;  //导入Scanner类
public class ScoreStat {
	 public static void main(String[] args) {
       	 //创建对象
		Scanner input = new Scanner(System.in);
		System.out.print("htmls的成绩是:");
		int html = input.nextInt();     //html分数
		int java = input.nextInt();
         int sql = input.nextInt();
		int diffen;       //分数差
		double avg;       //平均分
		 //省略输出成绩单代码……
		diffen = java - sql; //计算Java课和SQL课的成绩差
		System.out.println("Java和SQL的成绩差:" + diffen);
		avg = (html + java + sql) / 3;	//计算平均分
		System.out.println("3门课的平均分是: " + avg);
	 }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值