Java语言基础2

Java语言基础2:各种运算符


1、在定义Long 类型或者Float 类型变量的时候,要加 L 或者 F。

整数的默认类型是int 类型,浮点数的默认类型是double 类型。

byte 和short 在定义的时候,它们接收的其实是一个int 类型的值。这个是自己做了一个数据检测的,如果不在它们的范围内,就会报错。

2、运算符:运算符就是 对常量和变量进行操作的符号。分为6种。

分别是 算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符


3、算术运算符

+    -    *    /    %    ++    --

(1)基本操作

class OperatorDemo {
	public static void main(String[] args) {
		int x=3;
		int y=4;
		System.out.println(x+y);
		System.out.println(x-y);
		System.out.println(x*y);
		System.out.println(x/y);
		System.out.println(x*1.0/y);
		System.out.println(x%y);
	}	
}
(2)整数相除只能得到整数。要想得到小数,只需要把操作数中的数据任意一个数据转变为浮点数。

例如:System.out.println(x*1.0/y);

(3)/ 获取的是除法操作的商    % 获取的是除法操作的余数。

(4)++和--的作用是:对变量(不能是常量)进行自增1和自减1。

        单独使用:++ 和-- 单独使用时,放在变量的前面和后面效果是一样的。

        参与运算使用:放在操作数的前面,先自增或者自减,然后再参与运算。放在操作数的后面,先参与运算,再自增或者自减。

class OperatorDemo {
	public static void main(String[] args) {
		int x=3;
		int y=4;
		//字符串的拼接
		System.out.println("x:"+x);
		System.out.println("y:"+y);
		System.out.println("x:"+x+",y:"+y);
		//自增++	自减--	的操作
		//单独使用:
		x++;
		y--;
		System.out.println("x:"+x);
		System.out.println("y:"+y);
		
		//参与运算使用:
		int a=3;
		int b=4;
		//int c=a++;
		//int d=b--;
		int c=++a;
		int d=--b;
		System.out.println("a:"+a);
		System.out.println("b:"+b);	
		System.out.println("c:"+c);
		System.out.println("d:"+d);	                
		}	
}
(5)题目考验:
        int A=4;
        int B=(A++)+(++A)+(A*10);

        System.out.println("A:"+A+",B:"+B);    6/70

(6)注意:+ 的作用有三个:加法、正号、字符串连接符。

System.out.println(3+4);

System.out.println(+4);

System.out.println('a');    //a

System.out.println('a'+1);    //98

System.out.println("hello"+'a'+1);    //自左向右运算:helloa1

System.out.println('a'+1+"hello");     //自左向右运算:98hello

Java语言基础2_第1张图片


4、赋值运算符

= , +=, -=, *=, /=, %=

= 为基本的赋值运算符,其他的为扩展的赋值运算符
如下操作写出结果:

int a,b;     a = b = 10;    System.out.println(a);     System.out.println(b);

int a = 10;     a += 20;     System.out.println(a);

面试题:

short s=1;s = s+1;    (错。把int类型的赋值给short类型:可能损失精度

short s=1;s+=1;        (对。因为扩展的赋值运算符隐含了一个强制类型转换!)

s+=1 等同于:s=(s的数据类型)(s+1);

上面两个代码有没有问题,如果有,哪里有问题?


5、比较运算符

==    !=    >    <    >=    <=    instanceof

Java语言基础2_第2张图片


6、逻辑运算符

Java语言基础2_第3张图片Java语言基础2_第4张图片

(2)逻辑与 &:有false 则false。    逻辑或 |:有 true 则true。    逻辑异或 ^:相同为false,不同为true。逻辑非 !:若假则为true,若真则为false,偶数个!不改变本身,奇数个!则改变。

(3)双与 && 有短路性质。双或 || 有短路性质。开发中常用的是:&&     ||     !


7、位运算符

Java语言基础2_第5张图片Java语言基础2_第6张图片

Java语言基础2_第7张图片

(1)^ 的特点:某一个数据对另一个数据异或两次,该数本身不变。a==a^b^b;

(2)实现两个整数变量的交换:

        1)使用第三方变量实现(开发中就这样使用的!)。

        2)使用为异或实现(面试时候用!)。

        3)用变量相加实现。

        4)一句话搞定。

//交换两个数值:
int a=10;
int b=20;
//使用第三方变量实现
int c=a;
a=b;
b=c;

//使用位异或实现
a=a^b;
b=a^b;
a=a^b;

//使用变量相加实现
a=a+b;
b=a-b;
a=a-b;

//一句话搞定
a=(a+b)-(a=b);

(3)<< 是指:把<< 左操作数乘以 2的移动次幂。>> 是指:把>> 左操作数 除以 2的移动次幂。


8、三目运算符

Java语言基础2_第8张图片

计算最大值:

int max=(a>b)?( ( a>c ) ? a : c ):( ( b>c ) ? b : c );

9、键盘录入的基本格式讲解:三步走。

(1)导包。

格式:import java.util.Scanner;

位置:在class上面。

(2)创建键盘录入对象。

格式:Scanner sc=new Scanner(System.in);

(3)通过对象获取数据。

格式:int x=sc.nextInt();

/*
	为了让程序的数据更符合开发的数据,我们就加入了键盘录入。
	让程序更灵活一下。	
	那么,我们如何实现键盘数据的录入呢?
		A:导包
			格式:
				import java.util.Scanner; 
			位置:
				在class上面。
		B:创建键盘录入对象
			格式:
				Scanner sc = new Scanner(System.in);
		C:通过对象获取数据	
			格式:
				int x = sc.nextInt();
*/

import java.util.Scanner;
class ScannerDemo {
	public static void main(String[] args) {
		//创建键盘录入数据对象
		Scanner sc = new Scanner(System.in);
		System.out.println("请你输入一个数据:");
		int x = sc.nextInt();
		System.out.println("你输入的数据是:"+x);
	}
}
/*
	练习:
		键盘录入三个数据,获取这三个数据中的最大值
		键盘录入两个数据,比较这两个数据是否相等
*/
import java.util.Scanner;

class ScannerTest3 {
	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();
		
		System.out.println("请输入第三个数据:");
		int c = sc.nextInt();
		
		//获取这三个数据中的最大值
		int temp = ((a > b)? a: b);
		int max = (temp > c? temp : c);
		System.out.println("max:"+max);
		System.out.println("------------------");
		
		//键盘录入两个数据
		System.out.println("请输入第一个数据:");
		int x = sc.nextInt();
		
		System.out.println("请输入第二个数据:");
		int y = sc.nextInt();
		
		//比较这两个数据是否相等
		boolean flag = (x == y);
		System.out.println("flag:"+flag);
	}
}

你可能感兴趣的:(Java语言基础)