变量和数据类型及运算符

目录

1.变量

1.1.变量的概述

1.2.为什么要定义变量

1.3.变量的定义格式

1.4.数据类型

 1.5.数据类型范围

1.6.变量的注意点

2.数据类型转换

2.1.默认转换

2.2.强制转换

3.字符串操作

4.常量

4.1.概述

4.2.常量分类

5.运算符

5.1.概述

5.2.运算符分类

5.3.算术运算符

 5.3.1.算术运算符常见运算符演示

5.3.2. %取余(取模)

5.3.3. +符号的常见用法

5.3.4.自增和自减运算符使用(初级)

5.3.5.自增和自减运算符使用

5.4.赋值运算符

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

5.6.逻辑运算符

5.6.1.概述

5.6.2.逻辑运算符实战

5.7.三目运算符(三元运算符)if-else 简写


1.变量

1.1.变量的概述

在程序执行的过程中,在某个范围内其值可以发生改变的量。

1.2.为什么要定义变量

用来不断的存放同一类型的数据,并可以重复使用。

1.3.变量的定义格式

数据类型 变量名 = 初始化值

(注意:格式是固定的,记住格式,以不变应万变)

1.4.数据类型

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存分配了不同大小的内存空间。

 1.5.数据类型范围

整数默认:int        小数默认:double

Java各整数类型有固定的表数范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移植性。

Java语言的整型常量默认为 int 型,声明 long 型变量可以后加 ‘l’ 或 ‘L’,如:

        int num = 300; //正确        long num = 8888888888888L; //必须加 ‘l’ 或 ‘L’ 否则会出错

与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平台影响。

Java浮点类型常量有两种表示形式:

        十进制数形式,如:3.14        314.0

        科学计数法形式,如:3.14e²        3.14*10²

Java浮点型常量默认为 double 型,如要声明一个常量为 float 型,则需在数字后面加 f 或 F

如:        double d = 12345.6; //正确        float f = 12.3f; //必须加 f 或 F 否则会出错

char 型数据用来表示通常意义上的“字符”

字符常量为用单引号括起来的单个字符,例如:char ch1 = 'a';   char ch2 = '中';

Java字符采用 Unicode 编码,每个字符占两个字节,因而可用十六进制编码形式表示。

注:Unicode 是全球语言统一编码。

System.out.println(12+""+22);        //1222

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

boolean 类型适用于逻辑运算,一般用于程序流程控制

boolean 类型数据只允许取值 true 或 false ,不可以 0 或非 0 的整数替代 true 和 false,这点和C语言不同。

1.6.变量的注意点

01-作用域

变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。

02-初始化值

没有初始化值不能直接使用!

03-定义变量

在一行上建议只定义一个变量

可以定义多个,但是不建议

2.数据类型转换

一般来说,参与运算的数据类型,我们需要保持一致。

2.1.默认转换

		//直接输出加法计算
		System.out.println(3+4);
		
		//定义两个int变量
		int x = 3;
		int y = 4;
		System.out.println(x+y);
		
		//定义int变量接收
		int x = 3;
		int y = 4;
		int z = x+y;
		System.out.println(z);
		
		//int 和 byte 计算
		int x = 3;
		byte y = 4;
		System.out.println(x+y);
		
		int x = 3;
		byte y = 4;
		byte z = x+y;
		System.out.println(z);

默认转换(从小到大)

byte,short,char—int—long—float—double

byte,short,char相互之间不转换,它们参与运算时首先转换为 int 类型

2.2.强制转换

		int x = 3;
		byte y = 4;
		byte z = (byte) (x+y);
		System.out.println(z);

强制转换格式:

        目标类型 变量名 = (目标类型) (被转换的数据);

强制类型转换的前提:

        数据类型是兼容的,比如就不可以把字母转换成数字。

开发小结:

我们到底用哪种转换呢?

        一般建议,最好不要随意使用强制类型转换,容易造成数据精确度的损失。

        (1)容量大的数据类型转换成容量小的数据类型时,要加上强制转换符,但可以造成精确度降低或溢出;使用时要格外注意。

        (2)有多重类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。

3.字符串操作

请写出下列程序结果

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

  1. 在这里引入ASCII 码表
  2. 任何数据和字符串进行操作,结果都是字符串类型。但是要注意运算的顺序。

4.常量

4.1.概述

 常量也是一个特殊的变量,特别在这个变量中的值是固定的,不可以修改!

声明这个变量的同时就必须要给它赋一个值。

final int a = 10;        //被 final 修饰的变量就变成了常量

一般来说声明常量的时候,常量的名称全部大写

常量概述

        在程序执行的过程中其值不可以发生改变

Java中常量分类

        字面值常量

        自定义常量

4.2.常量分类

  • 字符串常量        用双引号括起来的内容
  • 整数常量           所有整数       12,23
  • 小数常量           所有小数        12.23 , 34.58
  • 字符常量           用单引号括起来的内容            ‘a’ ,‘A’ ,‘0’

5.运算符

5.1.概述

  1. 运算:
    对常量和变量进行操作的过程称为运算
  2. 运算符:
    对常量和变量进行操作的符号称为运算符
  3. 操作数:
    参与运算的数据称为操作数
  4. 用运算符把常量或者变量连接起来符合Java语法的式子就可以称为表达式。
    不同运算符连接的式子体现的是不同类型的表达式

5.2.运算符分类

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 三目运算符

5.3.算术运算符

 5.3.1.算术运算符常见运算符演示

		int x = 10;
		int y = 3;
		System.out.println(x+y);	//13
		System.out.println(x-y);	//7
		System.out.println(x*y);	//30
		System.out.println(x/y);	//3
		System.out.println(x*1.0/y);	//3.3333333333333335

5.3.2. %取余(取模)

		int x = 3;
		int y = 4;
		System.out.println(x%y);	//3
		System.out.println(y%x);	//1

5.3.3. +符号的常见用法

加法

正数

字符串连接符

        //加法
        System.out.println(3+4);
        //正号
        System.out.println(+4);
        
        System.out.println('a');
        System.out.println('a'+1);    //这里是加法
        //字符串连接符
        System.out.println("hello"+'a'+1);        // helloa1
        System.out.println('a'+1+"hello");        // 98hello

5.3.4.自增和自减运算符使用(初级)

	int x = 2;
	int y = 2;

	x++;
    //++x;
	System.out.println("x:"+x);    //3
	
	y--;
    //--y;
	System.out.println("y:"+y);    //1

自增(++)和自减(--)运算符的作用

让变量的值进行自增 1 或者自减 1

单独使用时,符号放在前面或者后面效果都是一样的。

5.3.5.自增和自减运算符使用

	 int a = 3;
	 int b = 4;
	 
	 int c = a++;
	 int d = b--;
	 
	 System.out.println(a);	//4
	 System.out.println(b);	//3
	 System.out.println(c);	//3
	 System.out.println(d);	//4
	 int a = 3;
	 int b = 4;
	 
	 int c = ++a;
	 int d = --b;
	 
	 System.out.println(a);	//4
	 System.out.println(b);	//3
	 System.out.println(c);	//4
	 System.out.println(d);	//3

总结:

1.如果是放在操作数的前面,先进行自增或自减,然后再去参与运算

2.如果是放在操作数的后面,先参与运算,然后再去进行自增或自减

练习Test

	 /**
	int a = 10;
	int b = 10;
	int c = 10;
	a = b++;
	c = --a;
	b = ++a;
	a = c--;
	请分别计算出a,b,c的值
	  */
	 
	 int a = 10;
	 int b = 10;
	 int c = 10;

	 a=b++;	//a10 b11 c10
	 c=--a;	//a9 b11 c9
	 b=++a;	//a10 b10 c9
	 a=c--;	//a9 b10 c8 
	 
	 System.out.println(a);	//9
	 System.out.println(b);	//10
	 System.out.println(c);	//8
	int a = 4;
	int b = (a++)+(++a)+(a*10);
	//int b = 4+6+(60)
    //注意:运算符的优先级
	
	System.out.println(a);	//6
	System.out.println(b);	//70

5.4.赋值运算符

符号:

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

=为基本的赋值运算符,其他的为扩展的赋值运算符

	 int x = 10;
	 x += 20;
	 //相当于 x = x+20;
	 
	 System.out.println(x);

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

 总结:

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

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

5.6.逻辑运算符

5.6.1.概述

  • 逻辑运算符用于链接布尔型表达式,在Java中不可以写成 3<x<6 ,应该写成 x>3&&x<6
  • "&"和"&&"的区别
    ​​​​    单 & 时,左边无论真假,右边都进行运算;
        爽 && 时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算
    “|” 和 “||” 的区别同理,双或 "||" 时,左边为真,右边不参与运算
  • 异或(^)与或(|)的不同之处是:当左右都为 true 时,结果为 false

5.6.2.逻辑运算符实战

实战1:逻辑与 &

     int a = 2;
     int b = 3;
     int c = 4;
     System.out.println((a>b)&(a>c));            // 错&错——》错false
     System.out.println((a>b)&(a<c));            // 错&对——》错false
     System.out.println((a<b)&(a>c));            // 对&错——》错false
     System.out.println((a<b)&(a<c));            // 对&对——》对true

结论:

     &逻辑与:有 false 则 false

实战2:逻辑或 |

     int a = 2;
     int b = 3;
     int c = 4;
     System.out.println((a>b)|(a>c));            // 错|错——》错false
     System.out.println((a>b)|(a<c));            // 错|对——》对true
     System.out.println((a<b)|(a>c));            // 对|错——》对true
     System.out.println((a<b)|(a<c));            // 对|对——》对true

总结:

   | 逻辑或:有 true 则 true

实战3:逻辑异或 ^

     int a = 2;
     int b = 3;
     int c = 4;
     System.out.println((a>b)^(a>c));    //错^错——》错false
     System.out.println((a>b)^(a<c));    //错^对——》对true
     System.out.println((a<b)^(a>c));    //对^错——》对true
     System.out.println((a<b)^(a<c));    //对^对——》错false

总结:

    ^ 逻辑异或:相同为 false ,不同为 true

实战4:逻辑非 !

    取反

实战5:双与 &&

     int a = 2;
     int b = 3;
     int c = 4;
     System.out.println((a>b)&&(a>c));    //错^错——》错false
     System.out.println((a>b)&&(a<c));    //错^对——》错false
     System.out.println((a<b)&&(a>c));    //对^错——》错false
     System.out.println((a<b)&&(a<c));    //对^对——》对true

  

     int x = 3;
     int y = 4;
     boolean b1 = (x++==3 & y++==4);            //对&对——》对true
     System.out.println(x);                //4
     System.out.println(y);                //5
     System.out.println(b1);            //对true
     boolean b2 = (x++==3 && y++==4);            //错&&错——》错false
     System.out.println(x);                //5
     System.out.println(y);                //5
     System.out.println(b2);            //错false
     boolean b3 = (++x==3 && y++==4);            //错&&错——》错false
     System.out.println(x);                //6
     System.out.println(y);                //5
     System.out.println(b3);            //错false


总结:
    && 双与:同 true 才 true,有 false 则false
                    左边只要是 false ,右边就不执行

实战6:双或 ||
    当有两个条件的时候,只要有一个成立,整体都为真,只有当两个条件都不成立的时候,才返回假。

5.7.三目运算符(三元运算符)if-else 简写

三木运算符(三元运算符)

  • 三目运算符格式:
            条件表达式?表达式1:表达式2
  • 条件表达式:
            条件表达式无论多么复杂,结果一定是布尔类型(true、false)
  • 三目运算符的执行流程:
            先判断条件表达式的结果      true 还是 false
            如果条件表达式的结果是 true ,那么返回表达式1的值
            如果条件表达式的结果是 false ,那么返回表达式2的值

     int x = 2;
     int y = 3;
     int z;
     z = (x>y)?x:y;                //3
     System.out.println(z);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值