热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

IF分支结构(如何判断是否为整数)

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以上 王者

推荐阅读
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了在Java中gt、gtgt、gtgtgt和lt之间的区别。通过解释符号的含义和使用例子,帮助读者理解这些符号在二进制表示和移位操作中的作用。同时,文章还提到了负数的补码表示和移位操作的限制。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
author-avatar
verde公寓_401
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有