Skip to content

课堂案例

案例一

目的:能够定义8中基本数据类型的定义

需求:完成课堂的数据类型的案例

案例二

目的:能够知道自动类型转换的格式

需求:完成课堂的自动类型转换的案例

案例三

目的:能够使用算术运算符做基本的运算,尤其是/和%的特点

需求:完成课堂的算术运算符的案例

案例四

目的:掌握自增自减的使用

需求:完成课堂的自增自减单独运算的案例

案例五

目的:掌握拓展赋值的运算的书写格式和执行流程

需求:完成课堂的赋值运算符的案例

案例六

目的:掌握逻辑运算符的使用场景

需求:完成课堂的逻辑运算符的案例

案例七

目的:掌握三元运算符的书写格式和执行流程

需求:完成课堂的三元运算符的案例

案例八

目的:能够说出Scanner的作用,掌握它的使用步骤

需求:完成课堂的键盘录入的案例

基础部分

数据类型

练习一

目标:掌握八种基本数据类型的基本定义

1. 需求
java
在IDEA中写一个Java程序,能够分别定义一个整数变量,为其赋值为10,一个float类型的变量,为其赋值13.14。定义一个long类型的的数据,为其赋值123456789123456;一个布尔类型变量,为其赋值为false。一个字符变量,为其赋值'我',最后把这些变量的结果输出来。

程序执行,在控制台输出效果

java
10
13.14
123456789123456    
false
2. 知识点
  • 基本数据类型
  • 变量的定义
3. 思路分析
java
基本数据类型:
    整数 : byte short int(默认类型) long(如果超过21亿需要加上L/l)
    浮点 : float(要在小数后面加F/f) double(默认类型)
    字符 : char   
    布尔 : boolean 只有 true/false两种取值

1.在IDEA中创建一个Java程序,并且创建main方法
2.定义一个整数变量,变量定义格式 : 数据类型 变量名 = 值;  整数的类型是int
3.定义一个小数变量,变量定义格式 : 数据类型 变量名 = 值;  定义的数据类型是float,要注意,float后面要加F/f。
4.定义一个整数变量,变量定义格式 : 数据类型 变量名 = 值;  定义的数据类型是long,要注意,float后面要加L/l。
5.定义一个布尔变量,变量定义格式 : 数据类型 变量名 = 值;  定义的数据类型是boolean
6.定义一个字符变量,变量定义格式 : 数据类型 变量名 = 值;  定义的数据类型是char
java
public class Test1 {
    public static void main(String[] args) {
        int a = 10;
        float b = 13.14F;
        long c = 123456789123456L;
        boolean d = false;
        char e = '我';

        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println("c = " + c);
        System.out.println("d = " + d);
        System.out.println("e = " + e);
    }
}

练习二

目标:掌握八种基本数据类型的基本定义

1. 需求
java
要存储一个学员的姓名(杨密)、性别(女)、年龄(22)、分数(88.5),请选择对应的类型去定义变量,把这些信息定义为变量
  tips: 可以使用下面的名称
  	姓名: name
    性别: gender
    年龄: age
    分数: score

程序执行,在控制台输出效果

java
--------学生信息---------
姓名:杨密
性别:
年龄:22
分数:88.5
2. 知识点
  • 变量的定义
  • 数据类型
3. 思路分析
java
1.先创建一个Java程序,创建main方法
2.定义变量代表姓名name,类型是字符串类型String,为其赋值。
3.定义变量代表性别gender,这里因为是一个字符,可以选择类型是字符串类型String,也可以选择字符类型char,为其赋值。    
4.定义变量代表年龄age,类型是整数类型int,为其赋值。    
5.定义变量代表分数score,类型是小数类型double,为其赋值。   
6.按照格式打印数数据,输出字符串和变量时,要使用+进行拼接。例如,System.out.println("name:" + name);
java
public class Test2 {
    public static void main(String[] args) {
        String name = "杨密";
        char gender = '女';
        int age = 22;
        double score = 88.5;
        System.out.println("-------学生信息------");
        System.out.println("姓名:" + name);
        System.out.println("性别:" + gender);
        System.out.println("年龄:" + age);
        System.out.println("分数:" + score);
    }
}

类型转换

练习一

目标:掌握自动类型转换和强制类型转换

1. 需求
java
练习基本数据类型之间的相互转换
定义int类型变量,为其赋值为10,将其赋值给double类型,查看结果。
定义byte类型变量,为其赋值100,将其赋值给short类型,查看结果。
定义byte类型变量,为其赋值80,将其赋值给int类型,查看结果。
定义double类型变量,为其赋值3.66,将其赋值给int类型,查看结果。

程序执行,在控制台输出效果

java
10.0
100
80
3
2. 知识点
  • 自动类型转换
  • 强制类型转换 , 格式: 目标数据类型 变量名 = (数据类型) 值;
3. 思路分析
java
基本数据类型,从小到大的排序为:
	byte < short < int < long < float < double
    char < int < long < float < double    
1.先创建一个Java程序,创建main方法
2.定义一个int的变量a,为其赋值10。
3.定义double类型的变量b,直接接收a,输出b的值。小转大,直接赋值
4.定义一个byte的变量c,为其赋值100。
5.定义short类型的变量d,直接接收c,输出d的值。小转大,直接赋值  
6.定义一个byte的变量e,为其赋值80。
7.定义int类型的变量f,直接接收e,输出f的值。小转大,直接赋值
8.定义一个double类型的变量g,为其赋值3.66
9.定义int类型的变量h,把g进行强制类型转换后再赋值个h,输出h的值。大转小,需要强制类型转换
java
public class Test3 {
    public static void main(String[] args) {
        int a = 10;
        double b = a;
        System.out.println("b = " + b);

        byte c = 100;
        short d = c;
        System.out.println("d = " + d);

        byte e = 80;
        int f = e;
        System.out.println("f = " + f);

        double g = 3.66;
        int h = (int)g;
        System.out.println("h = " + h);


    }
}

练习二

目标:表达式的类型提升,能够说出转化的规则以及注意事项

1. 需求
java
创建一个Java程序,
    1.定义两个byte类型的变量,分别赋值为10和20。使用程序计算这两个变量相加的结果,并且使用变量接收运算结果。
    2.定义一个byte类型的变量赋值为10,一个char类型的变量赋值为'a',一个float类型的变量赋值为5.2,一个double类型的变量赋值为       10,使用程序计算这些变量相加的结果,并且使用变量接收运算结果。

程序执行,在控制台输出效果

java
30
122.2
2. 知识点
  • 变量的定义
  • 表达式的自动类型转换
3. 思路分析
java
转化规则:表达式的最终类型取决于当前表达式的最高数据类型
注意事项:byte ,short , char 在运算的过程中会提升为int类型    
1.先创建好一个Java程序,创建main方法
2.分别定义两个byte类型的变量,变量名是a和b。分别给他们赋值为10和20
3.定义一个int类型的变量去接收a + b的结果。因为结果会提升为int    
4.定义byte类型变量,char类型变量,float类型变量和double类型变量,分别给他们赋值。
5.定义一个double类型的变量去接收他们的运算结果。表达式的最高类型为double, 所以使用double类型的变量去接收
java
public class Test4 {
    public static void main(String[] args) {
        byte a = 10;
        byte b = 20;
        int c = a + b;
        System.out.println("c = " + c);

        byte d = 10;
        char e = 'a';
        float f = 5.2F;
        double g = 10;
        double sum  = d + e + f + g;
        System.out.println("sum = " + sum);
    }
}

赋值运算符

练习一

目标:掌握拓展的赋值运算的书写格式和执行特点

1. 需求
java
定义一个byte类型的变量,为其赋值为10,输出结果。为其增加13.14,再输出结果。再次为其减去5.2,输出结果

程序执行,在控制台输出效果

java
10
23
17
2.知识点
  • 变量的定义
  • 拓展赋值运算的执行流程
3.思路分析
java
拓展的赋值运算的执行流程:
    	先用符号左边的变量和右边的变量进行运算,再把结果赋值给符号左边的变量
拓展的赋值运算符的执行特点:
    	底层是隐含了强制类型转换
1.先创建一个Java程序,创建main方法
2.定一个byte类型变量,变量名为a , 赋值10;输出结果
3.本身增加13.14,则可以使用 += 去实现。输出结果
4.本身减去5.2,则可以使用 -= 去实现。输出结果
java
public class Test5 {
    public static void main(String[] args) {
        byte a = 10;
        a += 13.14; // a = (byte)(a + 13.14)
        System.out.println(a);

        a -= 5.2;  // a = (byte)(a - 13.14)
        System.out.println(a);

    }
}

自增自减运算符

练习一

目标:掌握自增运算符的书写格式,能够说出他们分别对于变量的作用

1. 需求
java
定义一个整数变量代表点赞的数量。默认值是0,现在有三个用户分别对一个作品点赞,使用自增的知识点模拟点赞数量增长的过程,输出当前点赞的数量。隔了一段时间,有一个用户取消了点赞,使用自减的知识点模拟点赞减少的过程,输出当前点赞的数量。

程序执行,在控制台输出效果

java
当前点赞人数为:3
当前点赞人数为:2
2. 知识点
  • 变量的定义
  • 自增自减运算符
3. 思路分析
java
1.先创建一个Java程序,创建main方法
2.定一个整数变量count,为其赋值为0。
3.三个用户点赞,则代表count的变量要自增三次,输出结果
4.一个用户取消点赞,则代表count的变量要自减一次,输出结果
java
public class Test6 {
    public static void main(String[] args) {
        int count = 0;
        count++;
        count++;
        count++;
        System.out.println("当前点赞数量为:" + count);
        count--;
        System.out.println("当前点赞数量为:" + count);

    }
}

关系运算符、逻辑运算符

练习一

目标:掌握关系运算符的作用,以及能够使用逻辑运算符连接多个关系表达式

1. 需求
java
模拟用户在某东上搜索手机信息:用户想搜索一台价格是在4000到6000之间的手机,现在有一台手机,价格是5000块,使用程序输出当前手机是否符合用户的要求

程序执行,在控制台输出效果

java
当前手机的价格是否符合用户要求: true
2. 知识点
  • 变量的定义
  • 关系运算符
  • 逻辑运算符
3. 思路分析
java
1.先创建一个Java程序,创建main方法
2.定一个小数变量代表价格price,为其赋值为5000。
3.使用关系表达式,表示当前价格是否在4000到6000之前:  price >= 4000 && price <= 6000
4.输出结果
java
public class Test7 {
    public static void main(String[] args) {
        double price = 5000;
        System.out.println("当前手机的价格是否符合用户要求:" + (price >= 4000 && price <= 6000));
    }
}

练习二

目标:掌握关系运算符的作用,以及能够使用逻辑运算符连接多个关系表达式

1. 需求
java
已知闰年的规则是:能被4整除同时不能被100整除的是闰年,或者能被400整除的也是闰年。问2050年是否为闰年,使用程序说明

程序执行,在控制台输出效果

java
2050年是否为闰年:false
2. 知识点
  • 变量的定义
  • 关系运算符
  • 逻辑运算符
3. 思路分析
java
一个数字能否被另外一个数字整除,用%,然后判断余数是都为0,如果是0,则代表整除,反之,不整除
1.先创建一个Java程序,创建main方法
2.定义一个整数变量代表年份year,为其赋值为2050
3.根据题目的意思,闰年是有两种的情况的,换一个说法,只要满足其中一种情况就是闰年,
  所以题目的意思可以写成:(能被4整除同时不能被100整除的是闰年)|| (能被400整除的也是闰年)
4.表示能被4整除同时不能被100整除的是闰年:也可以理解为 (能被4整除)&&(不能被100整除)
java
public class Test8 {
    public static void main(String[] args) {
        int year = 2050;
        System.out.println(year + "年是否为闰年:" + ( ((year % 4 == 0)&&(year % 100 != 0)) || (year % 400 == 0)   ));
    }
}

三元运算符、键盘录入

练习一

目标:能够使用三元运算进行数据的判断。能够使用键盘录入的知识点,实现输入数据到程序中

1. 需求
java
键盘录入一个int类型的数据,使用三元运算符判断这个数是奇数还是偶数

程序执行,在控制台输出效果

java
请输入一个整数:
18
偶数
2. 知识点
  • 键盘录入
  • 三元运算
3. 思路分析
java
1.先创建一个Java程序,创建main方法
2.使用Scanner,实现键盘输入整数保存到程序中【键盘录入三部曲:导包,创建对象,接收数据,接收整数要用sc.nextInt()】
3.使用三元运算判断键盘录入的整数是否为偶数。nunber % 2 == 0 如果满足条件就返回 偶数,如果不满足条件,则返回奇数,使用变量接收返回的结果
4.输出结果
java
import java.util.Scanner;

public class Test01 {
    public static void main(String[] args) {
        //先创建键盘录入对象,接收一个整数
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数");
        int number = sc.nextInt();

        //使用三元运算判断这个整数是奇数还是偶数
        // 数据类型 变量名   = 关系表达式 ? 值1 : 值2;
        String str = number % 2 == 0 ? "偶数" : "奇数";
        System.out.println(str);

    }
}

练习二

目标:能够使用三元运算进行数据的判断。能够使用键盘录入的知识点,实现输入数据到程序中

1. 需求
java
键盘录入一个学生成绩(int类型),如果成绩大于等于60输出”及格”,如果成绩小于60输出”不及格”

程序执行,在控制台输出效果

java
请输入一个分数:
100
及格
2. 知识点
  • 键盘录入
  • 三元运算
3. 思路分析
java
1.先创建一个Java程序,创建main方法
2.使用Scanner,实现键盘输入整数保存到程序中【键盘录入三部曲:导包,创建对象,接收数据,接收整数要用sc.nextInt()】
3.使用三元运算判断键盘录入的整数是否大于等于60。score >= 60 如果满足条件就返回 及格,如果不满足条件,则返回不及格,使用变量接收返回的结果
4.输出结果
java
import java.util.Scanner;

public class Test02 {
    public static void main(String[] args) {
        //使用键盘录入,接收一个整数,代表分数
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个分数:");
        int score = sc.nextInt();

        //使用三元运算,判断这个值是否大于等于60
        String str = score >= 60 ? "及格" : "不及格";
        System.out.println(str);
    }
}

练习三

目标:能够使用键盘录入的知识点,实现输入数据到程序中

1. 需求
java
键盘录入自己的姓名(String),年龄(int),身高(double)保存到对应的变量中,输出结果如:我的姓名是张三,年龄25岁,身高180CM(提示姓名是String类型,需要使用Scanner的next()方法.)

程序执行,在控制台输出效果

java
请输入你的姓名:
张三
请输入你的年龄:
25
请输入你的身高:
180
我的姓名是张三,年龄25岁,身高180CM
2. 知识点
  • 键盘录入
3. 思路分析
java
1.先创建一个Java程序,创建main方法
2.使用Scanner,实现键盘输入整数保存到程序中【键盘录入三部曲:导包,创建对象,接收数据,接收整数要用sc.nextInt()】
3.先使用输出语句输出提示语,然后使用键盘录入的对象实现录入数据。录入字符串用next()方法,录入整数用nextInt()方法,录入小数用nextDouble()方法
4.把内容拼接成指定的格式输出
java
import java.util.Scanner;

public class Test03 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的名字:");
        String name = sc.next();
        System.out.println("请输入你的年龄");
        int age = sc.nextInt();
        System.out.println("请输入你的身高");
        double height = sc.nextDouble();
        System.out.println("我的姓名是" + name + ",年龄" + age + "岁,身高" + height + "CM");
    }
}

拓展部分

练习一

目标:掌握键盘录入的知识点。掌握数据交换的流程

1. 需求
java
小明左、右手中分别拿两张纸牌(比如:黑桃10和红桃8,数字10和8可通过键盘录入),要求编写代码交换小明手中的牌

程序执行,在控制台输出效果

java
请输入小明左手中的纸牌:10
请输入小明右手中的纸牌:8

互换前小明手中的纸牌:
左手中的纸牌:10
右手中的纸牌:8

互换后小明手中的纸牌:
左手中的纸牌:8
右手中的纸牌:10
2.知识点
  • 键盘录入
  • 数据交换
3.思路分析
java
1.创建Scanner对象
2.录入第一个数据赋值给变量left
3.录入第二个数据赋值给变量right
4.定义一个临时变量temp,保存left的值
5.将right的值赋值给left
6.将临时变量temp的值赋值给right
7.按格式打印left和rigth中的值
java
import java.util.Scanner;
public class Test04 {
    public static void main(String[] args) {
        //先键盘录入两个整数,代表小明手中的牌
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入小明左手中的纸牌:");
        int left = sc.nextInt(); //左手
        System.out.print("请输入小明右手中的纸牌:");
        int right = sc.nextInt(); //右手

        //交换 --> 需要借助第三个临时变量
       //left = right;
       //right = left;   //这种写法,会让left的值直接丢失掉【被覆盖了】

        int temp = left;
        left = right;
        right = temp;

        System.out.println("交换之后小明左手的牌:" + left);
        System.out.println("交换之后小明右手的牌:" + right);

    }
}

练习二

目标:掌握键盘录入的使用,掌握获取数字每个位置上的值

1. 需求
java
商场推出幸运抽奖活动,抽奖规则如下:
	(1)键盘录入四位数字(1000-9999的数字),作为顾客的会员卡号
	(2)该会员卡号(键盘录入的四位数字)各位数字之和大于20,则为幸运客户

程序执行,在控制台输出效果

java
请输入4位会员卡号:3569
	会员卡号3569各位之和:23
	会员卡号3569是幸运客户
		
	请输入4位会员卡号:1234
	会员卡号1234各位之和:10
	会员卡号1234不是幸运客户
2.知识点
  • 键盘录入
  • 灵活获取数字上每个位置上的值
3.思路分析
java
1.创建键盘录入对象
2.定义int类型的变量(保存会员卡号),并通过键盘录入给变量赋值
3.使用/%求出个位、十位、百位、千位上的数字
4.定义int类型的变量sum
5.计算各位数字之和并复制给sum
6.按照格式打印
	 (1)打印各位数字之和
	 (2)打印是或者不是幸运客户(是或者不是,可以通过三元运算符判断sum的值获取是或者不是)
java
import java.util.Scanner;

public class Test05 {
    public static void main(String[] args) {
        //先键盘录入一个四位的整数
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入4位会员卡号:");
        int number = sc.nextInt();
        //获取这个数字的每个位置上的值
        int ge = number % 10;
        int shi = number / 10 % 10;
        int bai = number / 100 % 10;
        int qian = number / 1000 % 10;
        int sum = ge + shi + bai + qian;

        //相加,判断是否大于等于20
        String str = sum >= 20 ? "是幸运客户" : "不是一个幸运客户";
        System.out.println("会员卡号" + number + "各个位置之和:" + sum);
        System.out.println("会员卡号" + number + str);

    }
}

Sube's Study Notes.