java大数据开发第四天(java SE基础)

1.算术运算符

1.1运算符和表达式

运算符:对常量或者变量进行操作的符号

表达式:用运算符对常量或变量进行操作的符合java语法式子就可以称为表达式

例子:int a=50; 

           int b=50;

           int c=a+b;

这里的+叫运算符并且是算术运算符;a+b叫表达式,因为+是算术运算符,所以这个表达式叫算术表达式。

1.2算术运算符

符号作用说明
+
-
*
/获取的是两个数据做除法的
%取余获取的是两个数据做除法的余数

整数相除只能得到整数,要想得到小数必须有浮点数参与运算

例如:int a=10;

           int b=3;

           int c=a/b;

           Systm.out.println(c);

结果为3而不是3.3333,因为除法运算得到的结果是两个数据做除法的

 1.3字符的“+”操作

拿字符在计算机底层对应的数值来计算的

‘A'-------->65,A-Z是连续的

'a'--------->97,a-z是连续的

'0'-------->48,0-9是连续的

算术表达式在包含多种数据类型时,整个算术表达式的类型会自动进行提升

提升规则:

byte、short、char类型自动转换为int类型

整个表达式饿类型自动提升为表达式中等级最高的类型

byte、short、char----->int----->long----->float----->double    

1.4字符串的"+"操作

①当"="出现在两个字符串中间时,它代表的是一个连接符,而不是运算符,

例如:String s1="zbc";

           String s2="123";

           Systm.out.println(s1+s2);

输出结果是zbc123

②当“+”出现在字符串中时,就是连接运算符,否则就是算术运算符,当连续执行"+"操作时,从左到右依次执行

例如:“我”+“爱你”+1+99+“年”

大家认为这个代码运行的结果是什么?我爱你100年?结果应该是我爱你199年。

例二:1+99+“年”+“前”’“我”+“爱你”

这个代码的运行结果是100年前我爱你

/*
    字符串的“+”操作
*/
public class OperatorDemo03{
    public static void main(String[] args){
        System.out.println("I"+"LOVE"+1000+0+"year");
        System.out.println(1000+9000+"ago"+"I"+"LOVE"+"year");
    }
}

2.赋值运算符

符号作用说明
=赋值a=10,将10赋给变量a
+=加后赋值a+=b,将a+b的值赋给a
-=减后赋值a-=b,将a-b的值赋给a
*=乘后赋值a*=b,将a*b的值赋给a
/=除后赋值a/=b,将a/b的商赋给a
%=取余后赋值a%=b,将a%b的余数赋给a

 

/*
    赋值运算符
*/
public class OperatorDemo{
	public static void main(String[] args){
		//把10赋值给int类型的变量i
		int i = 10;
		System.out.println("i:"+i);
		
		//+=把左边和右边的数据做加法操作,结果赋值给左边
		i += 20;
		//i = i+20;
		System.out.println("i:"+i);
		
		//注意:扩展的赋值运算底层隐含了强制类型转换的含义
		short s = 20;
		//s += 20;
		//s = (short)(s+20);
		
		System.out.println("s:"+s);
		
	}
}

3.自增自减运算符

符号作用说明
++自增变量的值加1
--自减变量的值减1

 i++与++i的区别:

i++是先将i参与运算,后进行自增操作;++i是先进行自增操作,用自增后的i去运算;

例如:int i=0;

           int a =i++;

这里的a是0;如果把上面的i++换成++i,那么a的值就是1。

/*
    自增自减运算符
*/
public class OperatorDemo04{
	public static void main(String[] args){
		//定义变量
		int i =1;
		System.out.println("i:"+i);
		
		//单独使用
		i++;
		//++i;
		System.out.println(i);
		
		//参与操作使用
		int j = i++;
		int j =++i;
		System.out.println("i:"+i);
		System.out.println("j:"+j);
		
	}
}

4.关系运算符

符号作用
==a==b,判断a是否等于b,成立为true,不成立为false
!=a!=b,判断a是否等于b,不成立为true,成立为false
>=a>=b,判断a是否大于等于b,成立为true,不成立为false
<=a<=b,判断a是否小于等于b,成立为true,不成立为false
<a<b,判断a是否小于b,成立为true,不成立为false
>a>b,判断a是否大于b,成立为true,不成立为false

 注意:关系运算符的结果都是boolean类型,只有true和false,千万不要把"=="误写成"="

/* 
    关系运算符
*/
public class OperatorDemo05{
	public static void main(String[] args){
		//定义变量
		int i =100;
		int j =200;
		int k =300;
		
		//==
		System.out.println(i==j);
		System.out.println(i==k);
		System.out.println("-----------");
		
		//!=
		System.out.println(i!=j);
		System.out.println(i!=k);
		System.out.println("-----------");
		
		//>
		System.out.println(i>j);
		System.out.println(i>k);
		System.out.println("------------");
		
		//<
		System.out.println(i<j);
		System.out.println(i<k);
		System.out.println("------------");
		
		//<=
		System.out.println(i<=j);
		System.out.println(i<=k);
		System.out.println("------------");
		
		//>=
		System.out.println(i>=j);
		System.out.println(i>=k);
		System.out.println("------------");
		
		//不小心把==写成=
		//把j的值赋值给了i,然后输出i的值
		System.out.println(i=j);
		
		
	}
}

5.逻辑运算符

在数学中有3<x<8,但是在java中应该如何表示呢?

先拆解这个算式为:x>3和x<8

合并后就是:x>3&&x<8

&&就是一个逻辑运算符

我们可以说逻辑运算符就是连接关系表达式的运算符,当然逻辑运算符也可以直接连接布尔类型的常量或变量

符号作用说明
&逻辑与a&b,a和b都为true,结果为true,否则是false
!逻辑非!a,结果与a相反
^逻辑异或a^b,a和b的结果不同为true,相同为false
|逻辑或a|b,a和b都是false,否则是true
/*
     逻辑运算符
*/
public class OperatorDemo06{
	public static void main(String[] args){
		//定义变量
		int i = 10;
		int j = 20;
		int k = 30;
		
		//& 有false则false
		System.out.println((i<j)&(i<k));//true & true
		System.out.println((i>j)&(i<k));//false & true
		System.out.println((i<j)&(i>k));//true &false
		System.out.println((i>j)&(i>k));//false & false
		System.out.println("---------------");
		
		//| 有true则true
		System.out.println((i<j)|(i<k));//true | true
		System.out.println((i>j)|(i<k));//false | true
		System.out.println((i<j)|(i>k));//true |false
		System.out.println((i>j)|(i>k));//false | false
		System.out.println("---------------");
		
		//^ 相同为false,不同为true
		System.out.println((i<j)^(i<k));//true ^ true
		System.out.println((i>j)^(i<k));//false ^ true
		System.out.println((i<j)^(i>k));//true ^false
		System.out.println((i>j)^(i>k));//false ^ false
		System.out.println("---------------");
		
		//!与原值相反
		System.out.println(!(i<j));//true
		
	}
}

6.短路逻辑运算符 

符号作用说明
&&短路与与逻辑&作用相同,但是有短路效果
||短路或与逻辑或作用相同,但是有短路效果

 注意事项:

  • 逻辑与&,无论左边真假,右边都要执行
  • 短路与&&,如果左边为真,执行右边;如果左边为假,右边不执行
  • 逻辑或|,无论左边真假,右边都要执行
  • 短路或||,如果左边为假,执行右边;如果左边为真,右边不执行

7.三元运算符

格式:关系表达式?表达式1:表达式2

范例:a>b?a:b

计算规则:①先计算关系表达式的值

                  ②如果关系表达式的值为true,则输出a

                  ③如果关系表达式的值为false,则输出b

/*
   三元运算符
    格式:
	     关系表达式?表达式1:表达式2
	范例:
	    a>b?a:b;
	执行流程:
	    首先计算关系表达式的值
		如果值为true,表达式1的值就是运算结果
		如果值为false,表达式2的值就是运算结果
*/
public class OperatorDemo08{
	public static void main(String[] args){
		//定义两个变量
		int a = 100;
		int b = 200;
		
		//获取两个数据中的最小值
		int min = a<b?a:b;
		
		//输出结果
		System.out.println("min:"+min);
	}
}

 8.数据输入

调用Scanner类步骤:

①导包:import java.util.Scanner;

②创建对象:Scanner sc = new Scanner(System.in);

③接收数据:int x = sc.nextInt();

/*
     数据输入:
	    导包:
		     import java.util.Scanner;
		创建对象:
		     Scanner sc = new Scanner(System.in);
		接收数据:
		     int x = sc.nextInt();
*/

import java.util.Scanner;

public class ScannerDemo{
	public static void main(String[] args){
		//创建对象
		System.out.println("请输入数据:");
		Scanner sc = new Scanner(System.in);
		
		//接收对象
		int x = sc.nextInt();
		
		//输出数据
		System.out.println("x:"+x);
	}
}

9.案例

9.1 两只老虎

需求:动物园里有两只老虎,一只老虎重200kg,另一只老虎重180kg,请用程序实现两只老虎体重是否相同。

/*
   两只老虎案例
   需求:
   动物园里有两只老虎,已知两只老虎体重分别为180kg、200kg
   请用程序实现判断两只老虎的体重是否相同?
*/
public class TwoTiger{
	public static void main(String[] args){
		//定义变量
		int t1=180;
		int t2=200;
		
		//比较体重
		boolean value=t1==t2?true:false;
		System.out.println("value:"+value);
	}
}

9.2三个和尚

需求:一座寺庙里有3个和尚,已知他们的身高分别是150cm、210cm、165cm,请用程序实现他们的最高身高。

/*
    三个和尚
	需求:
	    一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm
		请用程序实现获取这三个和尚的最高身高。
	*/
	public class ThreeMonks{
		public static void main(String[] args){
			//定义变量
			int a=150;
			int b=210;
			int c=165;
			
			//获取身高
			int max1=a>b?a:b;
			int max2=max1>c?max1:c;
			System.out.println("the highest is:"+max2+"cm");
		}
	}

9.3三个和尚升级版

 需求:一座寺庙里住着三个和尚,他们的身高必须经过测量得出,请用程序实现获取这三个和尚的最高身高。

/*
   三个和尚
       需求:一座寺庙里住着三个和尚,他们的身高必须经过测量得出,
	         请用程序实现获取这三个和尚的最高身高。
*/

import java.util.Scanner;

public class ThreeMonks02{
	public static void main(String[] args){
		//从键盘获取三个和尚的身高,并赋值给变量m1,m2,m3
		System.out.println("请输入和尚1的身高:");
		Scanner sc = new Scanner(System.in);
		int m1 = sc.nextInt();
		System.out.println("请输入和尚2的身高:");
		int m2 = sc.nextInt();
		System.out.println("请输入和尚3的身高:");
		int m3 = sc.nextInt();
		
		//比较三个和尚的身高
		int max1 = m1>m2?m1:m2;
		int max2 = max1>m3?max1:m3;
		
		//输出三个和尚的最高身高
		System.out.println("三个和尚的最高身高是:"+max2);
		
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值