第二章:变量、数据类型、表达式、运算符

一、变量
1. 概念:计算机中的一块内存空间,存储数据的基本单元
2. 变量的组成部分:数据类型、变量名、数据
3. 语法:
(1) 先声明,再赋值
  数据类型 变量名 ;   int a;
  变量名 = 数据 ;   a = 5;
(2) 声明的同时赋值:
  数据类型 变量名 = ;
  int b = 8;
(3) 同时定义多个同类型的变量:
  数据类型 变量名 1, 数据类型 = , 数据类型 ;
package execute;
public class variable{
	public static void main(String[]args){
		//1.先声明再赋值
		int a;//声明
		a = 5;//赋值
		System.out.println("a="+a);
		
		//2.声明时赋值
		int b = 8;
		System.out.println("b="+b);
		
		//3.同时定义多个同类型的变量
		int c,d=9,e=20,f;
		c=1;
		f=3;
		System.out.println("c="+c);
		System.out.println("d="+d);
		System.out.println("e="+e);
		System.out.println("f="+f);
	}
}

二、数据类型
1. 基本数据类型 ( 简单数据类型、原始数据类型 )
B :字节, Byte   1B = 8b (bit-> )
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
...
程序猿节日: 10.24
(1) 整数类型
  byte    1B     -128~127
  short   2B     -32768~32767
  int       4B     -2147483648~2147483647  
  long    8B     -922 ~922 -1  
  long 的字面值后面需要加 L/l( 建议 L ,区分数字1)
(2) 小数类型
  float:4B,单精度,字面值后必须加F/f
  double:8B,双精度,字面值后面可以D/d,也可以不加
注意 java 中的 float double 采用科学计数法的形式进行存储:1.23456792E8
package execute;
class A{
	public static void main(String[]args){
		float f = 3.9f;
		System.out.println(f);
		double d = 3.9;//字面值后面可以D/d,也可以不加
		System.out.println(d);
		float f2 = 12345678.23456789f;
		System.out.println(f2);
		double d2 = 123456789.123456789;
		System.out.println(d2);
		float f3=12345678912345678912f;
		System.out.println(f3);
	}

(3) 字符类型
  char 2B, 字面值形式如下:
   
  a. 单引号引起来的一个字符: char c = 'a';
  b. 使用整数形式进行存储,范围: 0~65535
  c. 转义字符:
      '\t' :水平跳格, tab
      '\n' :换行
      '\' ' :直接打印 单引号
      '\" ' :直接打印 双引号
      '\\ ' :打印一个反斜杠
package execute;
class A{
	public static void main(String[]args){
		char c1 = 'A';
		char c2 = '中';
		char c3 = '9';
		char c4 = '-';
		System.out.println(c1);
		System.out.println(c2);
		System.out.println(c3);
		System.out.println(c4);
		char c5 = 65;
		System.out.println(c5);
		char c6 = 29233;
		char c7 = 20320;
		System.out.print(c6);
		System.out.print('\t');
		System.out.print(c7);
		System.out.print('\n');
		System.out.print('国');
		System.out.print('\'');
		System.out.print('你');
		boolean bn = true;
		System.out.println(bn);
		String str = "hello";
		String str2 = "爱你,中国";
		System.out.println(str);
		System.out.println(str2);
	}
}

(4) 布尔类型
  boolean :字面值为: true false
      true 代表关系成立 ,
      false :代表关系不成立,假
       
  注意 :区分 c 语言中的 布尔类型 !!!
思考: long-8B float-4B 哪一个 存储的数据范围大?
java float 可以采用科学计数法的形式进行存储,float 存储的范围比 long 范围更大。
2. 对象数据类型 / 引用数据
(1) 类、接口、集合、数组等都为对象类型
(2) 以字符串为例讲解 对象类型:
  a. String 为字符串,对象类型
  b. 字面值:以双引号引起来的一个或是多个字符
      String str = "hello";
数据类型总结:实际应用
整数通常使用 int
小数通常使用: double
字符:开发偶尔用
布尔类型通常用于判断:分支结构、循环结构等
字符串:开发经常使用
案例:写出存储以下数据使用的数据类型:
姓名: String name = " 李明 "
年龄: int age;  
性别: char sex= ' ' ;
    String sex = " ";
    // int s = 1; // 1 代表男; 0 代表女
   
成绩: double score = 99.5;
电话: String tel="17710131197";
身份证号码: String id = "37082819980212204x";
package execute;
class B{
	public static void main(String[]args){
		String name = "LJQ";
		System.out.println("name:"+name);
		int age = 18;
		System.out.println("age:"+age);
		char sex = '女';
		System.out.println("sex:"+sex);
		double score = 100.0;
		System.out.println("score="+score);
		String tel = "1575*****32";
		System.out.println("tel:"+tel);
		String id = "510*************2X";
		System.out.println("id:"+id);
		String address = "四川省成都市";
		System.out.println("address:"+address);
	}
}

三、数据类型之间的转换
1. 自动类型提升
2. 强制类型转换
(1) 场景:小数据类型 赋值给 大数据类型 ( 存储数据的范围对应数据大小)
(2) 自动提升规则如下:
  byte->short->int->long->float->double
   
  char->int->long->float->double
(1) 应用场景:大数据类型 赋值 给 小数据类型时,需要使用强制类型转换
(2) 语法:
    源数据类型 变量名 1 = ;
    目标数据类型 变量名 2 = ( 目标数据类型 ) 变量名1;
package execute;
class C{
	public static void main(String[]args){
		byte b = 5;
		short s = b;
		System.out.println(s);
		char c = '爱';
		int i = c;
		System.out.println(i);
		int i2 = 65;
		char cs = (char)i2;
		System.out.println(cs);
		double d3 = 3.9;
		int i3 = (int)d3;
		System.out.println(i3);
	}
}

四、表达式
1. 理解:通常由字面值、变量、运算符组成式子,一般有一个结果
2. 表达式的结果类型规则如下:
(1) 表达式中有 double ,则结果为 double
(2) 表达式中没有 double ,有 float ,则结果为 float
(3) 表达式中没有 double float ,有 long ,结果为long
(4) 其余情况,结果为 int
  byte+byte   byte+short  
  short+short
  byte+int   short+int   int+int
五、运算符
 
 +   -   *( 乘法 )   /( 除法 )   %( 取余数 / 取模)
Java 中的 + 两种应用:
(1)加法运算:如果 + 两端都为数值类型,则为加法运算
  (2) 字符串的拼接:只要 + 一端为字符串类型,则+就为字符串的拼接
注意 java 中布尔类型不能参与 加法运算;但是可以参与字符串拼接
package execute;
class d{
	public static void main(String[]args){
		int a = 5;
		int b = 2;
		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);//2
		System.out.println((double)a/b);//2.5
		System.out.println(1.0*a/b);//2.5
		System.out.println(a/b*1.0);//2.0
		
		String s1 = "hello";
		String s2 = "world";
		System.out.println(s1+s2);
		
		int m = 2;
		int n = 5;
		System.out.println(s1+m);
		System.out.println(s1+(m+n));
		System.out.println(m+n+s1);
		System.out.println(s1+(m+n));
		//System.out.println(m+true);//报错,布尔不可加法运算
		System.out.println(s1+true);//布尔可拼接
		System.out.println("m+n="+(m+n));
		System.out.println(m+"+"+n+"="+(m+n));
		
	}
}

2. 赋值运算符
=     +=     -=   *=     /=
int a = 2;
a+=1; // 结果上: a = a+1;
a*=5; // a=a*5; 3*5 = 15
a-=10 ; // a=a-10;
System.out.println("a="+a);// 3
3. 比较运算符 ( 关系运算符 )
>   :大于
>=   :大于等于
<   :小于
<=   :小于等于
==   :等于
!=   :不等于
注意 :被关系运算符连接的表达式称为布尔表达式,关系成立-true ;关系不成立 -false ;结果类型为布尔类型
4. 逻辑运算符
&& :逻辑与,并且,两端连接的必须都为布尔表达式,两端同时为true ,结果才为 true
|| :逻辑或,或者,两端连接的必须都为布尔表达式,只要有一端为true ,结果就为 true
! :逻辑非,在结果上进行取反
package execute;
class B{
	public static void main(String[]args){
		int a = 2;
		a+=1;
		a*=5;
		a-=10;
		System.out.println("a="+a);//a=5
		int x = 3;
		int y = 5;
		System.out.println(x>y);//false
		System.out.println(x<=7);//true
		System.out.println(y==5);//true
		System.out.println(x!=5);//true
		System.out.println(x>3);//false
		System.out.println(x>=3);//true
		System.out.println(x<y&&y>9);//false
		System.out.println(x<y&&y>3);//true
		System.out.println(x<y||x>3);//true
		System.out.println(!(x<y||x>3));//false
		
	}
}

5. 一元运算符
++( 自增 )         --( 自减 )
开发应用如下:
a++ 或是 ++a :让 a 变量自身加 1
a-- 或是 --a: a 变量自身减 1
以下内容常用于开发面试或是考试:
int c=a++;// 先使用再加 1
int c=++a;// 先加 1 再使用
6.三元运算符
(1) 语法:
  布尔表达式 ? 表达式 1: 表达式 2
(2) 原理:判断布尔表达式结果是否成立,成立 ——true,则执行表达式 1 ;否则执行表达式 2
class B{
	public static void main(String[]args){
		//一元运算符
		int a = 3,b,c,d,e;
		b = ++a;//b=a+1;-> a=a+1;
		c = a++;//c=a;-> a=a+1;
		d = a--;//d=a;-> a=a-1;
		e = --a;//e=a-1;-> a=a-1;
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
		System.out.println(e);
		
		//分数超过90分则奖励假期一天,分数少于90取消清明假期(三元运算符的应用)
		double score = 100.0;
		System.out.println((score>90.0)?"奖励假期一天":"取消清明假期");
		
		//交换两个变量的值
		int m=12,n=13,k;
		k=m;
		m=n;
		n=k;
		System.out.println("m="+m);
		System.out.println("n="+n);
		
		//输出一个整数个十,百,位上的数
		int v=123,u,p,r;
		u=v%10;
		p=v/10%10;
		r=v/100;
		System.out.println("个位为:"+u);
		System.out.println("十位为:"+p);
		System.out.println("百位为:"+r);
		
		
	}
}

六、扫描议(Scanner)
1. 作用:实现人机交互
2. 使用步骤:
(1) 导包: import 包名 1. 包名 2. 类名;//导入某一个类
                import 包名 1. 包名 2.* // 导入包中所有类
       
  注意 :定义在 pacakge 语句的后面,所有类的上面; 一个源文件中可以定义多行 import 语句
  import java.util.Scanner;
(2) 创建 Scanner 对象:
  Scanner sc = newScanner(System.in);
   
(3) 使用:
  int n = sc.nextInt();// 输入一个整数
  double s = sc.nextDouble();// 输入一个小数
  String str = sc.next();// 输入一个字符串
  char c = sc.next().charAt(0);// 输入一个字符
package execute;
import java.util.Scanner;
import java.io.*;
class A{
	public static void main(String[]args){
		Scanner sc = new Scanner(System.in);
		//使用
		System.out.println("请输入一个整数");
		int n=sc.nextInt();
		System.out.println("n="+n);
		System.out.println("请输入一个小数");
		double d= sc.nextDouble();
		System.out.println("请输入一个字符串:");
		String str = sc.next();
		System.out.println("str="+str);
		System.out.println("请输入一个字符");
		char c = sc.next().charAt(0);
		System.out.println("c="+c);
		
	}
}

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值