java基础语法——运算符

运算符

就是程序中用来运算的符号

算术运算符

算术运算符分为+、-、*、/、%、++和–。

+号:

+在java中有三种用途

  1. 正号,例如int num = +10;这里代表赋值的是正10.

  2. 加法运算

  3. 作为连接符号使用

    public class Demo{
    	public static void main(String[] args){
    
    		//声明一个变量
    		int num = +5+4; //第一个+是正号,而第二个+就是加法运算符
    		System.out.println(num);
            
            /*
    		+ 号左右两边的操作数只要有一个是字符串类型
    		那么+ 号的作用就是拼接作用,将+ 号左右两边的操作数
    		拼接为一个新的字符串。
    		*/
            
            System.out.println("1+1="+1+1);	//这里与""字符串连接的+号就作为连接符号使用,1+1=1就成为了一个新的字符串,又和一个加号连接,把最后一个1连接在了一起成为了一个字符串,所以打印结果为1+1=11
    		System.out.println("1+1="+(1+1));
    	}
    }
    
    

-号:

而符号只有两种用途

  1. 作为负号来使用,在创建变量初始化时,加-号代表这个数是负的

    例如int sum = -5;

  2. 作为减法运算符来使用

*号:

*就代表两个数的相乘,作为乘法运算符来使用

/号

/号作为除法运算符来使用

整数使用除号如果不是整除会舍弃小数点后的数据

例如 5/2,在解释执行后会显示出答案为2

%号:

%号可以用来取余

例如 10%3,在解释执行后会显示出答案为1

++号 --号:

++ – 分别为自增和自减

++ – 为单独语句的时候前++ – 和后++ – 都是自增或者自减1

而当它们不是单独语句的时候

前++ – 为先自增自减再运算

后++ – 为先运算再自增自减

public class Demo03{
public static void main(String[] args){
    
		//声明一个变量
		int num = 10;
    
		//自增
		//num++;
		num- ;
		System.out.println(num);
		num = 10;
    
		//自增
		//++num;
		--num;
		System.out.println(num);
    
		//将num归为10
		num = 10;
    
		//将num++的结果赋值给变量存储
		int result = num++;//先运算 再自增
		System.out.println("result="+result+",num="+num);
    
		//num归为10
		num = 10;
		result = ++num;
		System.out.println("result="+result+",num="+num);
    
		//声明变量
		int j = 10;
		int k = 4;
		result = j- k++ + ++k + k- + ++j;
		System.out.println("result="+result+",k="+k+",j="+j);
    	//result = 28 k = 5 j = 10
	}
}
关系运算符

关系运算符用来比较两端操作数

< > >= <=用来比较基本数据类型

== !=可以比较基本数据类型和引用类型

关系运算符比较之后得到的结果就是布尔值

public class Demo04{
public static void main(String[] args){
		System.out.println(5>3);//得到结果为true
    
		//测试使用== !=
		int num1 = 10;
		int num2 = 20;
		System.out.println(num1==num2);//比较相等
    
		//声明两个字符串类型的变量
		String str1 = "abc";
		String str2 = "abc";
		System.out.println(str1==str2);//得到结果为true
		//System.out.println(str1>str2);//编译报错
		System.out.println(str1!=str2)}
}

逻辑运算符
  1. 逻辑运算符左右两边连接的操作数是一个boolean类型的值
  2. & 左右两边操作数有一个为false,其结果就是false,如果都为true其结果才为true。
  3. | 左右两边操作数有一个为true,其结果就是true,如果都为false其结果才为false。
  4. ! 取反 !false为true !true为false
  5. ^ 两端操作数相同为false 不同为true
  6. && || 称之为短路与和短路或,&&如果第一个操作数为false其结果就是false不会执行第二个操作数。|| 如果第一个操作数为true,整个结果就为true,不会执行第二个操作数
  7. & | ^ 既是逻辑运算符也是位运算符
public class Demo05{
	public static void main(String[] args){
        
        // 通过一个运算符连接不是boolean
        System.out.println("测试&运算符");
        System.out.println(true&false);
        System.out.println(true&true);
        System.out.println(false&false);
        System.out.println(false&true);
        
        System.out.println("测试&&运算符");
        System.out.println(true&&false);
        System.out.println(true&&true);
        System.out.println(false&&false);
        System.out.println(false&&true);
        
        System.out.println("测试|运算符");
        System.out.println(true|false);
        System.out.println(true|true);
        System.out.println(false|false);
        System.out.println(false|true);
        
        System.out.println("测试||运算符");
        System.out.println(true||false);
        System.out.println(true||true);
        System.out.println(false||false);
        System.out.println(false||true);
        
        System.out.println("测试!运算符");
        System.out.println(!false);
        System.out.println(!true);
        
        System.out.println("测试^运算符");
        System.out.println(true^false);
        System.out.println(true^true);
        System.out.println(false^false);
        System.out.println(false^true);
	}
}
/**
模拟登录:
*/
public class LoginV1{
	public static void main(String[] args){
        
        //声明两个变量存放注册的信息
        int regUname = 123;
        int regPwd = 123;
        
        //声明两个变量存放登录信息
        int loginUname = 123;
        int loginPwd = 234;
        boolean flag = (regUname==loginUname) && (regPwd==loginPwd);
        System.out.println(flag);
	}
}

/**
如何实现用户输入:
1:在当前类的头顶上编写如下代码:
import java.util.Scanner;
2: 在代码中编写如下代码: //只需要写一次
Scanner input = new Scanner(System.in);
3: 在上述信息编写完成之后,编写如下代码:
int num = input.nextInt();
*/
import java.util.Scanner;
public class LoginV2{
	public static void main(String[] args){
    
        //声明两个变量存放注册的信息
        int regUname = 123;
        int regPwd = 123;
    
        //给用户提示信息
        System.out.println("请输入用户名>>>>>");
        Scanner input = new Scanner(System.in);//只需要写一次
        int loginUname = input.nextInt();//获取用户键盘上输入的值
    
        System.out.println("请输入密码>>>>>");
        int loginPwd = input.nextInt();
    
        //通过&&判定是否登陆成功
        boolean flag = (regUname==loginUname)&&(regPwd==loginPwd);
        System.out.println(flag);
	}
}

拓展运算符

+= -= *= /= %=

举例:num += 2 和 num = num + 2 效果相同 其他的与加法类似

拓展运算符的缺点:不利于阅读理解

拓展运算符的优点:减少代码量

​ 提高编译速度

​ 自动强制转换

public class Demo08{
	public static void main(String[] args){
        
        //声明两个变量存放两个学生分数
        int zhangScore = 120;
        int liScore = 98;
        
        //声明变量存放
        int result = 0;
        //result += zhangScore; //result = result + zhangScore;
        //result += liScore;//result = result + liScore;
        result = result + zhangScore;
        result = result + liScore;
        System.out.println(result);
        int num = 10;
        byte b = 10;
        // b =(byte)(b+num);
        b += num;
        System.out.println(b);
	}
}
条件运算符

三目运算符 格式为 表达式1?表达式2:表达式3

效果是如果表达式1的值为true,那么运算结果为表达式2,反之则是表达式3

public class Demo06{
	public static void main(String[] args){
        
        // 计算两个数的最大值:
        //声明2个变量存放值
        int num1 = 20;
        int num2 = 30;
        System.out.println(num1>num2);
        
        //三目运算符
        int max = 0;//num1>num2?num1:num2;
        System.out.println("num1和num2中大的值是:"+max);
        
        //计算三个数的最大值
        int num3 = 26;
        max = num1>num2?num1:num2>num3?num1>num2?num1:num2:num3;
        System.out.println("num1和num2,num3中大的值是:"+max);
	}
}

常见面试题

/**
三目运算符中的面试题:
表达式中类型会自动提升
int num = 90>100?90.0:100;
System.out.println(num);
*/
public class Demo07{
	public static void main(String[] args){
        
        // 判定一个数字奇数还是偶数
        int num = -1;
        // 被除数-被除数/除数*除数
        String str = num%2==1?"奇数":"偶数";
        System.out.println(str);
	}
}
位运算符

& | ^

运算符的优先级
  1. 算数>关系>逻辑>三目>赋值
  2. 单目>双目>三目
  3. 加括号优先级最高
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值