课堂案例
案例一
目的:能够定义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);
}
}