java变量基础知识

一、变量基础知识

1、练习所有类型变量的定义,打印每种类型变量的值

A.数据类型分类

四类 数据类型 字节数 数据表示范围
整型 byte 1 -128~127
整型 short 2 -32768~32767
整型 int(常用) 4 -21亿21亿(-21474836482147483648)
整型 long 8 -263~263
浮点型 float 4 3.403E38~3.403E38
浮点型 double 8 -1.798E308~1.798E308
字符型 char 2 表示一个字符,如‘a’、‘1’、’家‘
布尔型 boolean 1 只有两个值true与false

B.定义各种类型变量并打印输出这些值

  • 源码
class Data {
    public static void main(String[] args) {
        byte b = 0b10; //定义byte类型变量
        System.out.println(b);

        short s = 1;//定义short类型变量
        System.out.println(s);

        int i = 1;//定义int类型变量
        System.out.println(i);

        long l = 0xA;//定义long类型变量
        System.out.println(l);

        float f = 1.111e11F;//定义float类型变量
        System.out.println(f);

        double d = 1.1;//定义double类型变量
        System.out.println(d);

        char c = '义';//定义char类型变量
        System.out.println(c);

        boolean boo = true;//定义boolean类型变量
        System.out.println(boo);

        String str = "中国";//定义字符串
        System.out.println(str);

        System.out.println(b + s + i + l + f + d + c + str);
        }
}
  • 输出结果:
    java变量基础知识_第1张图片
    47513084.png

2、任选两种类型,写一个自动类型提升和强制类型小案例

A.自动类型提升

  • 取值范围小的类型,自动转换取值范围大的类型
  • boolean类型不参与转换

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

  • 例子:
public class DataConvert {
    public static void main(String[] args) {
        //定义double类型的变量
        double d = 1000;//出现类型自动转换,把int转换成double
        System.out.println(d);

        int i = 100;
        double d2 = i;//出现类型自动转换,int自动转成double
        System.out.println(d2);

        byte b = 10;
        int j = b;//自动类型转换,byte自动转换int
        System.out.println(j);
    }
}
  • 输出结果:
    47638540.png

B.强制转换

  • 数据类型范围大的转换成数据类型范围小的;
  • 没有特殊要求,不得强制转换;
  • 数据类型的强制转换公式
    被转换后的数据类型 变量名 = (被转换后的数据类型)要转换的数据
  • 例子:
class DataConvert_1 {
    public static void main(String[] args) {
        //double 浮点,转成整数int
        double d = 3.1415926;
        int i = (int)(d);
        System.out.println(i);
    }
}
  • 输出结果:
    47690238.png

3、运算符:

A.算术运算符(+ - * / % ++)

运算符 原酸规则 范例 结果
+ 正号 +3 3
+ 2+3 5
+ 连接字符串 "中" + "国" "中国"
- 负号 int a = 3 ; -a -3
- 3-1 2
* 2 * 3 6
/ 5 / 2 2
% 取模 5 % 2 1
++ 自增 int a = 1; a ++/++ a 2
-- 自减 int b = 3; a--/--a 2
  • 例子:
public class Operator_1 {
    public static void main(String[] args) {
        //+ 连接作用,将一个字符串和其他数据连接
        //遇到字符串,+意思为连接符号
        //任何类型只要和字符串 + ,所有的数据都变成字符串
        System.out.println("5+5 = " + 5 + 5);

        int i = 9;
        int j = 100;
        
        int add = i + j;//加法运算
        System.out.println(add);
        
        int sub = i - j;//减法运算
        System.out.println (sub);
        
        int mul = i * j;//乘法运算
        System.out.println(mul);

        double div = (double)i / j;//除法运算
        System.out.println(div);
        
        int mod = i % j;//取模运算
        System.out.println(rem);
        
        //自增运算 ++
        int a = 1;
        int b = 1;
        int c = 1;
        c++;
        int d = 1;
        ++d;
        System.out.println(a++);
        System.out.println(++b);
        System.out.println(c);
        System.out.println(d);
    }
}
  • 输出结果:
    java变量基础知识_第2张图片
    47764058.png

B.赋值运算符(=,+=,/=,*=,%=)

运算符 运算规则 范例 结果
= 赋值 int a = 2 2
+= 加后赋值 int a = 2; a+=2 4
-= 减后赋值 int a = 2; a -=2 0
*= 乘后赋值 int a = 2; a *= 2 4
/= 整除后赋值 int a = 2;a /= 2 1
%= 取模后赋值 int a = 2; a %= 2 0
  • 例子:
//赋值运算
class Demo_1 {
    public static void main(String[] args) {
        int i=2,j=2,k=2,m=2,n=2;

        i += 2;//加后赋值
        System.out.println(i);

        j -= 2;//减后赋值
        System.out.println(j);

        k *= 2;//乘后赋值
        System.out.println(k);

        m /= 2;//整除后赋值
        System.out.println(m);

        n %= 2;//去模后赋值
        System.out.println(n);
    }
}
  • 运算结果
    java变量基础知识_第3张图片
    47820905.png

C.比较运算符(>,<,>=,<=,==,!=)

运算符 运算规则 范例 结果
== 相等于 4 == 3 false
!= 不等于 4 != 3 true
< 小于 4 < 3 false
> 大于 4 > 3 true
<= 小于等于 4 <= 3 false
>= 大于等于 4 >= 3 true
  • 例子:
//比较运算
class Demo_2 {
    public static void main(String[] args) {
        int i = 10;
        int j = 12;

        boolean boo1 = i == j;
        System.out.println(boo1);

        boolean boo2 = i != j;
        System.out.println(boo2);

        boolean boo3 = i < j;
        System.out.println(boo3);

        boolean boo4 = i > j;
        System.out.println(boo4);

        boolean boo5 = i <= j;
        System.out.println(boo5);

        boolean boo6 = i >= j;
        System.out.println(boo6);
    }
}
  • 输出结果:
    java变量基础知识_第4张图片
    47881215.png

D.逻辑运算符(&&,||,!)

java变量基础知识_第5张图片
1972055.png
  • 例子:
class Operator_3 {
    public static void main(String[] args) {
        System.out.println(true & true);
        System.out.println(false & true);
        System.out.println(false & false);
        System.out.println(true | true);
        System.out.println(true | false);
        System.out.println(false | false);
        System.out.println(true ^ false);
        System.out.println(true ^ true);
        System.out.println(false ^ false);
        System.out.println(false && true);
        System.out.println(true || false);
        System.out.println(!false);
        System.out.println(!true);
    }
}
  • 输出结果:
    java变量基础知识_第6张图片
    47937547.png

4、练习商品库存案例

  • 源码:
/*
实现商品库存清单案例
分析步骤:
    1.实现表头,是固定数据,直接写输出语句;
    2.表格中间,商品数据采用变量形式,定义变量,找对数据类型,输出所有变量
    3.表格尾巴,一部分数据固定,另一部分,商品数据进行数学计算,运算符
*/
class Shop {
    public static void main(String[] args) {
        //输出表头固定数据
        System.out.println();
        System.out.println("---------------------------商场清单---------------------------");
        System.out.println();
        System.out.println("品牌型号        尺寸      价格      库存数");
               //定义表格中的数据变量
        //品牌型号 String类型,尺寸/价格 double类型,库存 int类型
                //定义MacbookAir的属性
        String macBrand = "MacBookAir";
        double macSize = 13.3;
        double macPrice = 6988.88;
        int macCount = 5;

                //定义ThinkPadT450的属性
        String lenovoBrand = "ThinkPadT450";
        double lenovoSize = 14.0;
        double lenovoPrice = 5999.99;
        int lenovoCount = 10;

                //定义ASUS-FL5800的属性
        String asusBrand = "ASUS-FL5800";
        double asusSize = 15.6;
        double asusPrice = 4999.5;
        int asusCount = 18;

                //输出表格内容
        System.out.println(macBrand +"      " + macSize + "     " + macPrice + "        " + macCount);
        System.out.println(lenovoBrand +"       " + lenovoSize + "      " + lenovoPrice + "     " + lenovoCount);
        System.out.println(asusBrand +"     " + asusSize + "        " + asusPrice + "       " + asusCount);
        System.out.println("--------------------------------------------------------------");
                //表尾内容
        System.out.println("总库存数:"+(macCount + lenovoCount + asusCount));
        System.out.println("库存商品总金额:"+(macPrice * macCount + lenovoPrice * lenovoCount + asusPrice * asusCount));
    }
}
  • 输出结果:**


    java变量基础知识_第7张图片
    47999838.png

二、课后作业:

1.数据类型转换:

A.第一题

byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;

哪句是编译失败的呢?为什么呢?

  • 答:
    第2句编译错误,因为两个byte类型的变量相加很可能超出byte的取值范围,所以编译会错误;类似的情况还有shortcha类型。

B.第二题

byte by = 130;有没有问题?有问题如何解决?结果是多少呢?

  • 答:
  1. 130超出byte的取值范围(-128~127),编译错误;
  2. 解决办法:byte by = (byte)130
  3. 结果:数据会损失精度,结果为-126

C.第三题:

byte b = 10;
b = b + 1;
b+=1;

有没有问题?为什么呢?

  • 答:
    1. 第2行代码会编译错误;
    2. 因为1默认为int类型,(b+1)会自动提升为int类型,无法把int类型的数字赋值给byte类型的变量;
    3. 解决办法 b = (byte)(b + 1);

2.分析以下需求,并用代码实现

  • 已知三位数173,打印百位上的数字(线索利用对100 进行 / 运算获得百位上的数字);分别打印十位上和个位上的数字(线索:利用对10或者100进行/或者%运算获取十位和个位上的数字)
  • 源码
class Demo_3 {
    public static void main(String[] args) {
        int i = 173;
        int m = i / 100;//定义百位数为m
        System.out.println(m);

        int n = i % 100;
        int k = n / 10;//定义十位数为k
        int f = n % 10;//定义个位上的数为f
        System.out.println(k);
        System.out.println(f);
      }
}
  • 输出结果
    48417234.png

3.看程序说结果:

public class Test1 {
    public static void main(String[] args) {
        int x = 4;
        int y = (--x)+(x--)+(x*10);
        System.out.println("x = " + x + ",y = " + y);
    }
}
  • 输出结果:
    x = 2 , y = 26

你可能感兴趣的:(java变量基础知识)