作者:verde公寓_401 | 来源:互联网 | 2023-08-21 08:58
Java学习第四天,内容是ifelse结构,Scanner语法的掌握练习,今天自己想出来一个判断整数的语句,很开心,语句如下:numsc.nextFloat();if((int)n
Java学习第四天,内容是if else结构,Scanner 语法的掌握练习,今天自己想出来一个判断整数的语句,很开心,语句如下:
num = sc.nextFloat();
if ((int)num != num )
把用户输入的数字赋值给 num ,然后把这个数字整型化,如果得出的结果不变,说明输入的是整数,如果整型后的num与之前不一样,说明输入的数字不是整数
今天笔记如下:
if分支结构
1. 代码运行过程中的常见结构
顺序结构
代码从上到下,从左至右执行,最基本原则。
分支结构
路上的风景不一样,向左走向右走结果不一样。
代码满足不同的条件,执行不同的结果
循环结构
吃饭,睡觉,撸猫,辅导,上课
代码中存在需要多次执行的情况,这里会使用到循环结构
2. 分支结构
2.1 if 分支结构
if (/* 条件判断 */) {
// 语句体
}
/* 执行流程: 当前程序运行到if结构时,首先执行条件判断,条件判断的结果是一个boolean类型,如果条件判断为true,执行语句体,为false,不能执行语句体。 最后都会执行到大括号之外 */
/* if 分支结构演示 */
class Demo2 {
public static void main(String[] args) {
// 假设你兜里有10块钱
// int mOney= 10;
// 假设你兜里有1块钱
int money = 10;
// money > 5 是一个条件判断,结果是一个boolean
if (money >= 5) {
System.out.println("煎饼果子来一套");
money -= 5;
System.out.println("余额 :" + money + "元");
}
System.out.println("if大括号之外的代码~~~~");
}
}
/* 1. 判断一个字符是不是大写英文字母 */
class Demo3 {
public static void main(String[] args) {
// 定义一个字符类型char 的变量
char ch = '我';
/* 代码结构安排的明明白白的!!! */
if (ch >= 'A' && ch <= 'Z') {
System.out.println("这里是一个大写字母!!!");
}
System.out.println("大括号之外的语句!!!");
}
}
/* 2. 判断一个字符是不是英文字符 */
class Demo4 {
public static void main(String[] args) {
// 判断字符,需要使用一个char类型变量
char ch = '1';
/* (ch >= 'A' && ch <= 'Z') 大写字母范围 (ch >= 'a' && ch <= 'z') 小写字母范围 */
if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {
System.out.println("这是一个英文字母");
}
System.out.println("if 大括号之外的代码");
}
}
/* 3. 判断一个年份是不是闰年 能被4整除但是不能被100整除,或者能被400整除 */
class Demo5 {
public static void main(String[] args) {
// 年份是一个整数,这里使用int类型
int year = 2009;
/* year % 4 == 0 && year % 100 != 0 || year % 400 == 0 */
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
System.out.println("是闰年");
}
}
}
2.2 if else 分支结构
/* if 分支结构中只能处理条件满足的情况,条件不满足没有任何的处理语句。 if else分支结构。 */
if (/* 条件判断 */) {
// true语句体
} else {
// false语句体
}
/* 执行流程: 代码执行到if else结构运行,首先判断if之后的条件判断,如果条件判断为true,执行true语句体,如果条件判断为false,执行false语句体。 世界上最遥远的距离是我在if里,你在else里 */
/* 1. 工资判断 月收入5000以上缴税 月收入5000以下不需要缴税 */
class Demo6 {
public static void main(String[] args) {
// 工资是一个浮点类型数据,这里使用double类型
double salary = 4999.0;
/* 语句体: 大括号以内的内容,也可以称之为代码块 */
if (salary > 5000) {
System.out.println("我为国家做贡献");
} else {
System.out.println("我会继续努力,为国家做贡献");
}
}
}
/* 2. 是否有女朋友 有 true 没有 false */
class Demo7 {
public static void main(String[] args) {
// 是否有女朋友就两种情况,true or false
boolean hasGirlFriend = false;
/* if () 小括号内需要的数据类型是boolean类型 hasGirlFriend 该变量就是一个boolean类型数据,可以直接用于 if 直接的判断 */
if (hasGirlFriend) {
System.out.println("奶茶买一送一");
} else {
System.out.println("路见不平一声吼,你还没有女朋友");
}
}
}
/* 3. 判断一个字符是不是数字字符 */
class Demo8 {
public static void main(String[] args) {
// 需要判定的是一个数字字符,这里需要char类型
char ch = '我';
/* 这里操作判断的是一个字符类型数据 */
if (ch >= '0' && ch <= '9') {
System.out.println("该字符是一个数字字符");
} else {
System.out.println("该字符不是一个数字字符");
}
}
}
2.3 if else if 分支结构
学生成绩的等级划分:
90 ~ 100 秀儿
80 ~ 90 良儿
70 ~ 80 中儿
60 ~ 70 格儿
60 以下 让你爹穿着拖鞋来学校一趟
用户购物VIP等级
100 ~ 1000 铜牌会员
1001 ~ 5000 银牌会员
5001 ~ 10000 金牌牌会员
10001 ~ 50000 钻石会员
50001 黑钻会员
if (/* 条件匹配1 */) {
// 处理方式1
} else if (/* 条件匹配2 */) {
// 处理方式2
} else if (/* 条件匹配3 */) {
// 处理方式3
} else {
// 无匹配项最终处理方式
}
/* 执行流程: 代码执行到if else if结构,从上至下,匹配if之后小括号里面的内容,条件匹配成功,执行对应的处理方式,结束分支结构运行。如果没有任何的一个条件匹配,执行else中的语句,也会终止条件匹配 【注意】 else if个数不限制,可以有多个!!! */
/* 用户购物VIP等级 100 ~ 1000 铜牌会员 1001 ~ 5000 银牌会员 5001 ~ 10000 金牌牌会员 10001 ~ 50000 钻石会员 50001 黑钻会员 */
class Demo9 {
public static void main(String[] args) {
// 用户的消费数据按照int类型考虑
int money = 50001;
if (money >= 100 && money <= 1000) {
System.out.println("铜牌会员");
} else if (money > 1000 && money <= 5000) {
System.out.println("银牌会员");
} else if (money > 5000 && money <= 10000) {
System.out.println("金牌会员");
} else if (money > 10000 && money <= 50000) {
System.out.println("钻石会员");
} else if (money > 50000) {
System.out.println("黑钻会员");
} else {
System.out.println("非会员...");
}
}
}
/* 学生成绩的等级划分: 90 ~ 100 秀儿 80 ~ 90 良儿 70 ~ 80 中儿 60 ~ 70 格儿 60 以下 让你爹穿着拖鞋来学校一趟 */
class Demo10 {
public static void main(String[] args) {
/* 成绩考虑存在0.5的情况,需要使用浮点类型数据 这里采用float类型 */
float score = 59F;
/* 成绩等级判断 */
if (score >= 90 && score <= 100) {
System.out.println("秀儿");
} else if (score >= 80) {
System.out.println("良儿");
} else if (score >= 70) {
System.out.println("中儿");
} else if (score >= 60) {
System.out.println("格儿");
} else {
System.out.println("让你爹穿着拖鞋来学校一趟");
}
}
}
【补充知识点 Scanner 复制粘贴就可以了】
以上代码每一次的结果都是需要用户修改代码,保存,重新编译之后才可以进行执行结果。对于普通用户而言,该操作可行吗?
我们需要给程序提供一种方式,用于接受用户输入的数据!!!
Scanner是Java中提供的用于从控制台输入数据到代码中的一种方式,存在一些弊端,容易导致一些错误,这里只要求大家了解一些必要的方法。
【Scanner操作哪里需要沾哪里】
Scanner使用流程
1. 点技能点,Java程序本身是没有直接使用Scanner的能力,这里需要点技能点。
官网操作【导包】
固定格式:
import java.util.Scanner;
放在class代码上一行
2. 需要得到一个Scanner的变量
固定格式:
Scanner sc = new Scanner(System.in);
3. 选择执行对应的方法,从键盘上获取对应的数据
获取int类型
int类型的变量 = sc.nextInt();
获取float类型
float类型的变量 = sc.nextFloat();
获取double类型
double类型的变量 = sc.nextDouble();
获取char类型
char类型的变量 = sc.nextLine().charAt(0);
【补充知识点 用户友好性提示】
代码运行需要站着用户的角度来思考问题。用户进行操作时,需要给予用户足够的提示和引导,告知用户当前操作如何完成,考虑代码的友好性!!!
用户粘性问题!!!用户提示!!!用户友好性!!!
【补充知识点 用户输入数据合法性判断】
就算在提示中告知用户需要输入的数据范围是多少,但是用户在实际使用的过程中,依然存在输入错误的情况。需要对于用户输入的数据进行合法性判断,如果用户输入的内容符合我们的判断逻辑需求,进入数据处理过程。如果不符合要求,直接终止程序!!!
/* 学生成绩的等级划分: 90 ~ 100 秀儿 80 ~ 90 良儿 70 ~ 80 中儿 60 ~ 70 格儿 60 以下 让你爹穿着拖鞋来学校一趟 */
// 导包,让当前Java代码可以使用Scanner
import java.util.Scanner;
class Demo10 {
public static void main(String[] args) {
/* 成绩考虑存在0.5的情况,需要使用浮点类型数据 这里采用float类型,这里赋值一个初值 */
float score = 0.0F;
// 需要得到一个Scanner的变量
Scanner sc = new Scanner(System.in);
/* 提示用户操作 */
System.out.println("请输入学生的成绩1 ~ 100:");
score = sc.nextFloat();
/* 验证用户输入数据的合法性 如果用户输入的数据不合法,终止程序!!! 不合法: 输入数据 > 100 或者 <0 */
if (score > 100 || score < 0) {
System.out.println("输入数据不合法!!!");
// 程序退出
System.exit(0);
}
/* 成绩等级判断 */
if (score >= 90 && score <= 100) {
System.out.println("秀儿");
} else if (score >= 80) {
System.out.println("良儿");
} else if (score >= 70) {
System.out.println("中儿");
} else if (score >= 60) {
System.out.println("格儿");
} else {
System.out.println("让你爹穿着拖鞋来学校一趟");
}
}
}
3. 总结
分支结构用于处理代码中出现的一些需要判断,并且按按条件处理的情况!!!
1. 条件约束考虑清楚
2. 处理的过程考虑清楚
3. 数据类型选择
4. 作业
1. 整理笔记,整理笔记,整理笔记!!!一定要整理笔记
2. 今天所有代码三遍以上!!!
3. 练习题
a. 用户输入一个【整数】,判断该整数是奇数还是偶数
奇数,打印 这是一个奇数
偶数,打印 这是一个偶数
b. 用户输入一个【浮点类型数据(float类型)】
判断大于99.99F 告知用户,您是VVIP
小于等于99.99F 告知用户 您不是VIP
c. 用户输入一个【整数】,判断当前用户的游戏段位是什么
【考虑用户输入合法性问题】
小于等于1000,青桐
1000 - 1200 白银
1200 - 1400 黄金
1400 - 1600 白金
1600 - 1800 钻石
1800 - 2000 大师
2000以上 王者