关于java的常用运算符

时间:2023-02-16 16:45:55


1.回顾

2.算术运算符

3.赋值运算符

4.比较运算符(关系运算符)

5.逻辑运算符

6.位运算符

7.三元运算符

 

回顾

1.软件:系统软件 vs 应用软件

2.人与计算机做交互:使用计算机语言

   图形化界面 vs 命令行方式dir md rd cd cd.. cd / del exit

3.语言的分类:第一代:机器语言  第二代:汇编语言第三代:高级语言(面向对象)

4.Java语言的特性(1)面向对象性 (2)健壮性 (3)跨平台性

5.安装jdk和配置path环境变量

  1)傻瓜式安装jdk

  2pathwindow操作系统在执行时所需要的搜寻路径

     我们需要将jdkbin目录所在的路径:

   3)测试:在命令行窗口中。任意文件夹下面输入javac

6.如何编写第一个java程序

【过程】编写---编译---运行

(1)编写:每一个java文件都是.java结尾的,称为源文件【HelloWorld.javajava程序就存在于源文件中

public class HelloWorld{

  //程序的主方法,是程序的入口

  public static void main(String args[]){

     System.out.println(“helloworld”)

  }

}

1.源文件以.java结尾

2.源文件中可以有多个class声明的类

3.类中可以有主方法(即main()方法),其格式是固定的:public static void main(String[] args){}

4.main()方法是程序的入口,方法内是程序的执行部分。

5.一个源文件中只能有一个声明为public的类,同时要求此类的类名与源文件名一致。

6.每个语句都以";"结束

7.执行程序:①编译:javac.exe  编译完,生成诸多个.class字节码文件。②运行:java.exe

8.多行注释不能够嵌套

 

(2)编译:在源文件所在的目录下,执行javac.exe 源文件名.java 他会生成.class字节码形式

(3)运行:生成的字节码文件通过java.exe 解析执行

7.关键字:被java语言赋予了特殊含义,用做专门用途的字符串(单词)

8.保留字:

9.标识符:凡是自己可以起名字的地方都叫标识符

10.命名规则:(一定要遵守,不遵守就会报编译错误)

11.Java中变量安装数据类型来分类:基本数据类型 vs引用数据类型

 基本数据类型:

  整形:byte(8 bit) short int(默认类型) long

  浮点型:float double(默认类型)

  字符型:char(‘ ’)

  布尔类型:boolean(只能取值truefalse,不能取null)

12.进制(了解)

  十进制  二进制八进制 十六进制

 二进制:计算机底层都是用二进制来存储,运算的

>二进制与十进制的转换

>二进制在底层存储:正数,负数都是以补码形式存储的(源码,反码,补码)

>四中进制转换

13.变量的运算:

 1)自动类型转换:容量小的数据类型自动转换成容量大的数据类型

 short s =12;

 Int i =s +2

注意:byte short char 之间做运算,结果都为int

强制类型转换:是(1)的反过程

 

                     

赋值运算符

符号: =

 1)当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。

  (2)支持连续赋值。

 

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

 

思考1short s = 3;

         s=s+2;  

         s+=2;    

        ①和②有什么区别?

 

 

思考2

     boolean b1 = false;

        //区分好===的区别。

        if(b1=true)

System.out.println("结果为真");

        else

System.out.println("结果为假");

思考3

int i = 1;

i *= 0.1;

System.out.println(i);//

i++;

System.out.println(i);//

 

案例:

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

class GetValue{

public static void main(String[] args) {

int i1 = 10;

i1 += 3;//i1 = i1 + 3;

 

short s = 10;

//s = s + 3;编译不通过

s = (short)(s + 1);//不建议如此实现

s += 1;//既可以实现运算,又不会更改s的数据类型。

 

int i2 = 12;

i2 %= 5;//i2 = i2 % 5;

System.out.println(i1);

System.out.println(s);

System.out.println(i2);//2

 

boolean b1 = false;

        //区分好===的区别。

        if(b1=true)

System.out.println("结果为真");

        else

System.out.println("结果为假");

 

int i = 1;

i *= 0.1;

System.out.println(i);//0

 

 

}

}

比较运算符

 关于java的常用运算符

比较运算符的结果都是boolean型,也就是要么是true,要么是false

比较运算符==”不能误写成“=

 

逻辑运算符

&—逻辑与         —逻辑或         !—逻辑非

&& —短路与      || —短路或        —逻辑异或


关于java的常用运算符


 

逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6

&”和“&&”的区别

     &时,左边无论真假,右边都进行运算;

     &时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。

异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false

      理解:异或,追求的是“异”!

 

 

 

案例:

//逻辑运算符:  &  && | || ! ^

class TestLogic{

public static void main(String[] args){

boolean a = true;

boolean b = false;

 

System.out.println(a & b);

System.out.println(a && b);

System.out.println(a | b);

System.out.println(a || b);

System.out.println(a & !b);

System.out.println(a^b);

 

//& &&的区别:&:不管左边是true还是false,右端都会进行运算。

//   &&:当左端为false时,右端不再进行运算

//以后使用时,建议使用 &&

int i1 = 10;

if(b & (i1++) > 0){

System.out.println("今天天气很晴朗");

}else{

System.out.println("难得没有雾霾");

}

System.out.println(i1);//11

 

int i2 = 10;

if(b && (i2++) > 0){

System.out.println("今天天气很晴朗");

}else{

System.out.println("难得没有雾霾");

}

System.out.println(i2);//10

 

 

//| ||的区别:|:当左端为true时,右端照样做运算。

// ||:当左端为true时,右端不再进行运算。

//我们在使用时,选择:||

int i3 = 10;

if(a | i3++ > 0){

System.out.println("今天天气很晴朗");

}else{

System.out.println("难得没有雾霾");

}

System.out.println(i3);//11

 

int i4 = 10;

if(a || i4++ > 0){

System.out.println("今天天气很晴朗");

}else{

System.out.println("难得没有雾霾");

}

System.out.println(i4);//10

 

}

}

 

练习题:

 

 关于java的常用运算符

 

 

位运算符

 关于java的常用运算符

位运算是直接对二进制进行运算

 关于java的常用运算符

 

 关于java的常用运算符

 关于java的常用运算符

 

//位运算符:<<  >>   >>>  | & ~ ^

class TestBit{

public static void main(String[] args){

int i1 = 31;

System.out.println(i1<<3);//248

System.out.println(i1<<28);

System.out.println(i1>>2);//7

System.out.println(i1>>>2);//7

 

int i2 = -31;

System.out.println(i2>>2);//-8

System.out.println(i2>>>2);//1073741816

System.out.println(12 & 5);//4

System.out.println(12 | 5);//13

System.out.println(12 ^ 5);//9

System.out.println(~12);//-13

 

}

}

 关于java的常用运算符

关于java的常用运算符

关于java的常用运算符

 

 

 

 

 

 

 

class TestExer1{

public static void main(String[] args){

int m = 12;

int n = 5;

System.out.println("m:" + m + " n:" + n);

//方法一:提供一个临时变量。

//int temp = m;

//       m = n;

//       n = temp;

//System.out.println("m:" + m + " n:" + n);

 

//方法二:当mn较大时,有可能出现精度损失

//m = m + n;//m = 12 + 5;

//n = m - n;//n = 17 - 5;

//m = m - n;//m = 17- 12

//System.out.println("m:" + m + " n:" + n);

 

//方法三:优点:没有上面两种方法的缺点。 缺点:难!

m = m ^ n;

n = m ^ n;//(m ^ n) ^ n == m

m = m ^ n;//(m ^ n) ^ m == n

System.out.println("m:" + m + " n:" + n);

//问题:

//60  手动的方式,从控制台输出60的十六进制。

int i = 61;

//自动调用Integer类现成的方法

String binary = Integer.toBinaryString(i);

System.out.println(binary);

 

String hex = Integer.toHexString(i);

System.out.println(hex);

/*

char c = 'a';

char c1 = (char)(c + 2);

System.out.println(c1);//c

*/

 

int j = i & 15;//获取到i的最低4位对应的值。

String k1 = (j <= 9)? j + "" : (char)(j - 10 +'a') + "";

//System.out.println(k1);

 

i = i >> 4;

int z = i & 15;

String k2 = (z <= 9)? z + "" : (char)(z - 10 +'a') + "";

System.out.println(k2 + k1);

}

}

 关于java的常用运算符

关于java的常用运算符

 

 

 

 

 

三元运算符

 关于java的常用运算符

表达式1和表达式2同种类型

三元运算符与if-else的联系与区别:

1)三元运算符可简化if-else语句

2)三元运算符要求必须返回一个结果。

3if后的代码块可有多个语句

 

练习: 获取两个数中的较大数

       获取三个数中的较大数

 

/*

三元运算符:(条件表达式)?  表达式1 :表达式2;

要求:表达式1与表达式2为同种数据类型。

   既然是运算符,就一定会有运算的结果,结果的数据类型与表达式1,2的类型一致。

三元运算符在一定程度上可以与if-else互换。(三元运算符一定可以转换为if-else,反之不成立。)

*/

案例:

class TestSanYuan{

public static void main(String[] args){

int i = 10;

int j = 20;

//此时max记录了ij的较大值

int max = (i > j)? i : j;

 

//String str = (i > j)? "i" : "j";

String str = (i > j)? "i" : (i == j)?"相等" :"j";

 

//String str1 = (i > j)? i : "j";

System.out.println(max);

System.out.println(str);

 

//互换

if(i >= j){

System.out.println("较大值为:" + i);

}else{

System.out.println("较大值为:" + j);

}

 

//练习:如何使用三元运算符,输出三个数中的较大值。

int m = 12;

int n = 23;

int k = -9;

int max1 = (m > n)? m : n;

int max2 = (max1 > k)? max1 : k;

System.out.println(max2);

}

}

 关于java的常用运算符

              关于java的常用运算符

 

 

程序流程控制

 关于java的常用运算符

      关于java的常用运算符

 

 

 

案例:

/*

1.格式:三种

2.执行if-else语句时,一定会选择其中的一个路径执行,而且也仅会选择一条路径。

*/

class TestIf1 {

public static void main(String[] args){

int age = 28;

 

if(age > 18){

System.out.println("你已经成年了!");

}else{

System.out.println("你还不能看成人电影!");

}

 

if(age > 130 || age < 0){

System.out.println("你估计不是人");

}else if(age < 30){

System.out.println("人家还很年轻,只有" + age +"岁的啦~~么么");

}else{

System.out.println("别追我了,我都有两个娃了!");

}

 

if(age < 30){

//1.

}else if(age < 60){

//2.

}else if(age < 100){

//3.

}else{

//4.

}

 

}

}

 

怎么获取键盘输入:

//1.导包

import java.util.Scanner;

class TestScanner{

public static void main(String[] args){

//2.创建一个Scanner类的对象

Scanner s = new Scanner(System.in);

System.out.println("请输入一个字符串:");

//3.调用此对象的相应的方法,完成键盘输入的值的获取

//next():表示从键盘获取一个字符串

String str = s.next();

System.out.println(str);

}

}

 案例:if语句例题1

从键盘输入小明的期末成绩。

当成绩为100分时,奖励一辆BMW

当成绩为(8099]时,奖励一个台iphone5s

当成绩为[60,80]时,奖励一本参考书;

其它时,什么奖励也没有。

 

/*

从键盘输入小明的期末成绩。

当成绩为100分时,奖励一辆BMW

当成绩为(8099]时,奖励一个台iphone5s

当成绩为[60,80]时,奖励一本参考书;

其它时,什么奖励也没有。

 

1.条件判断之间可以嵌套

2. ①如果多个条件之间是“互斥”关系,多个条件语句上下顺序是*的。

   ②如果多个条件之间存在“包含”关系,要求范围小的写在范围大的上面。

*/

import java.util.Scanner;

class TestIf2{

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

System.out.println("请输入小明的期末成绩:(分)");

int score = s.nextInt();

if(score >100 || score < 0){

System.out.println("你输入的数值有误!");

}else{

if(score == 100){

System.out.println("奖励一辆BMW");//be my wife!  MSN!

}else if(score > 80){

System.out.println("奖励一个台iphone5s");

}else if(score >= 60){

System.out.println("奖励一本参考书");

}else{

System.out.println("什么也没有");

}

}

 

 

}

}

 

 

编写程序:由键盘输入三个整数分别存入变量num1num2num3,对它们进行排序(使用if-else if-else),并且从小到大输出。

/*

编写程序:由键盘输入三个整数分别存入变量num1num2num3

对它们进行排序(使用if-else if-else),并且从小到大输出。

 

说明:如果if-else if-else条件的执行语句块{}只有一条语句的话,那么这一对{}可以省略

建议:不要省略{}

*/

import java.util.Scanner;

class TestIf3{

public static void main(String[] args) {

//1.从键盘获取三个整数

Scanner s = new Scanner(System.in);

System.out.println("请输入第一个整数:");

int num1 = s.nextInt();

System.out.println("请输入第二个整数:");

int num2 = s.nextInt();

System.out.println("请输入第三个整数:");

int num3 = s.nextInt();

 

//2.num1num2num3从小到大排序

System.out.println("从小到大的排序为:");

if(num1 > num2){

if(num3 > num1)

System.out.println(num2 + "," + num1 +"," + num3);

//System.out.println("helloworld");

else if(num3 < num2)

System.out.println(num3 + "," + num2 +"," + num1);

else

System.out.println(num2 + "," + num3 +"," + num1);

}else{

if(num3 > num2)

System.out.println(num1 + "," + num2 +"," + num3);

else if(num3 < num1)

System.out.println(num3 + "," + num1 +"," + num2);

else

System.out.println(num1 + "," + num3 +"," + num2);

}

}

}

 

 

 

案例4.去掉{}

class TestIf4

{

public static void main(String[] args)

{

int x = 4;

int y = 1;

if (x > 2) {

 if (y > 2)

                System.out.println(x + y);

             System.out.println("it18zhang");

} else

       System.out.println("x is " + x);

 

}

}