【视频+图文】Java经典基础练习题(三):输入3个整数,并将其由小到大输出
能解决题目的代码并不是一次就可以写好的
我们需要根据我们的思路写出后通过debug模式找到不足再进行更改
多次测试后才可得到能解决题目的代码!
通过学习,练习【Java基础经典练习题】,让我们一起来培养这种解决问题思路。
一、视频讲解
二、思路分析
Q1:如何从键盘输入3个整数?
A1: 键盘输入需使用Scanner语句,使用Scanner语句需以下4步骤
- 导包(可以在第二步创建后按住“Ctrl+shift+O”来自动导包)
import java.util.Scanner; - 创建 Scanner sc = new Scanner (System.in); (sc是对象的名字,只要符合命名规则可更换)
3. 使用(这里介绍的是最简单是使用方法)
(1) 获取键盘输入的int型数字 int num = sc.nextInt();
(2) 特殊: 获取键盘输入的字符串 String str = sc.next();
4. 使用完毕,关闭键盘输入 sc.close();(即对象名.close())
Q2:只输出最大数或最小数,我可以搞定。但是如何将这三个数由小到大都输出呢?
A2: 这个问题的回答就是解题的核心啦!
- 因为本题要求是从小到大输出3这个数,我们先将我们从键盘输入的数用3个变量x、y、z来保存。
- 所以我们的基本思路就是:让3个数经过一系列变化后
x:存放3数中最小的那个数
y:存放三数中处在中间位置的数
z:存放3数中最大的数 - 接下来我们就来讲讲3个数怎样经过一系列变化达到我们的目的,
以x=45、y=27、z=15为例:
- 我们先让x与y比较:
若x>y,就让x和y交换位置(一定要记得我们的终极目的:3个数中的小数存放在x中)
此次x=45、y=27所以我们使其交换位置
x=45、y=27、z=15 → x=27、y=45、z=15 - 继续x与z进行比较:
若x>z,就让x和z交换位置(一定要记得我们的终极目的:3个数中的小数存放在x中)
此次x=27、z=15所以我们使其交换位置
x=27、y=45、z=15 → x=15、y=45、z=27 - 继续y与z进行比较:
若y>z,就让y和z交换位置(一定要记得我们的终极目的:3个数中的小数存放在x中)
此次y=45、z=27所以我们使其交换位置
x=15、y=45、z=27 → x=15、y=27、z=45
经过3次比较,最终这3个数的顺序就是由小到大的了。
总结:
让x与y比较,若x>y,就让x和y交换位置
让x与z比较,若x>z,就让x和z交换位置
让y与z比较,若y>z,就让y和z交换位置
三、代码+详解+结果
代码:
package Exercise;
import java.util.Scanner;
public class ThreeNumberSort {
// 题目:输入3个整数,并将其由小到大输出
public static void main(String[] args) {
int temp=0;
Scanner sc = new Scanner(System.in);//使用Scanner键盘输入
System.out.println("请输入3个整数");
int x = sc.nextInt();//将键盘输入的第一个数保存在int型x变量中
int y = sc.nextInt();//将键盘输入的第二个数保存在int型y变量中
int z = sc.nextInt();//将键盘输入的第三个数保存在int型z变量中
sc.close();//使用完键盘输入后关闭
if(x>y) {//如果x>y那么x,y需要交换位置
temp=x;//借助temp变量,将二者间的大数x存在temp中
x=y;//让小数y到x的位置
y=temp;//让大数x(即此时的temp)到y的位置,这时x y中的数就是从小到大的顺序
}
if(x>z) {//如果x>z那么x,z需要交换位置
temp=x;//借助temp变量,将二者间的大数x存在temp中
x=z;//让小数z到x的位置
z=temp;//让大数x(即此时的temp)到z的位置,这时x z中的数就是从小到大的顺序
}
if(y>z) {//如果y>z那么y,z需要交换位置
temp=y;//借助temp变量,将二者间的大数y存在temp中
y=z;//让小数z到y的位置
z=temp;//让大数y(即此时的temp)到z的位置,这时y z中的数就是从小到大的顺序
}
System.out.println(x+" "+y+" "+z);// 输出由小到大排序后的xyz三数
}
}
详解:
以x:6 y:48 z:-2为例
- x=6,y=48 不满足第一个if语句条件
if(x>y)
- 所以不执行第一个if语句,继续向下执行。此时x,y,z的值为:6 48 -2
- x=6,z=-2满足第二个if语句条件
if(x>z)
- 所以执行if语句中的代码块:
if(x>z) {//如果x>z那么x,z需要交换位置
temp=x;//借助temp变量,将二者间的大数x存在temp中
x=z;//让小数z到x的位置
z=temp;//让大数x(即此时的temp)到z的位置,这时x z中的数就是从小到大的顺序
}
- 此时temp=6;
x=-2
z=6
执行完这个if语句后x,y,z的值为:-2 48 6
- 继续下一个if语句判断,这时y=48,z=6
满足第三个if语句条件if(y>z)
- 所以执行if语句中的代码块:
if(y>z) {//如果y>z那么y,z需要交换位置
temp=y;//借助temp变量,将二者间的大数y存在temp中
y=z;//让小数z到y的位置
z=temp;//让大数y(即此时的temp)到z的位置,这时y z中的数就是从小到大的顺序
}
- 此时temp=48;
y=6
z=48
执行完这个if语句后x,y,z的值为:-2 6 48
- 此时xyz的值已是从小到大的顺序,我们输出此时的x y z:-2 6 48
结果:
四、彩蛋

【视频+图文】Java经典基础练习题(三):输入3个整数,并将其由小到大输出的更多相关文章
- 【视频+图文】Java经典基础练习题(六):猴子吃桃子问题
目录 一.具体题目 二.视频讲解 三.思路分析(逆向思维) 四.代码+结果 代码: 结果: 五.彩蛋 一.具体题目 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天 早上又将剩下 ...
- Java语言基础(三)
Java语言基础(三) 一. 补码 (1).之所以有补码是因为要考虑成本 就是造计算机的成本 (2).下面让我们分析一下补码 以四位补码为例 <1> 高位是符号位,它决定其是正数还是 ...
- Java 多线程基础(三) start() 和 run()
Java 多线程基础(三) start() 和 run() 通过之前的学习可以看到,创建多线程过程中,最常用的便是 Thread 类中的 start() 方法和线程类的 run() 方法.两个方法都包 ...
- python基础练习题(输入三个整数x,y,z,请把这三个数由小到大输出)
day3 --------------------------------------------------------------- 实例005:三数排序 题目: 输入三个整数x,y,z,请把这三 ...
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
- 超全面!1.5w字总结50个Java经典基础面试题(已根据知识点分类)
大家好,我是fancy. 在面试中将基础问题回答好就是成功的一半. 我总结了50道经典的Java基础面试题,里面包含面试要回答的知识重点,并且我根据知识类型进行了分类,可以说非常全面了. 小伙伴们点赞 ...
- Java的基础知识三
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...
- java并发基础(三)--- 任务执行
第6章开始是第二部分,讲解结构化并发应用程序,大多数并发应用程序都是围绕“任务执行”构造的,任务通常是一些抽象的且离散的工作单元. 一.线程池 大多数服务器应用程序都提供了一种自然的任务边界:以独立的 ...
- Java经典基础与高级面试36题和答案
1.”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法? “static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实 ...
随机推荐
- 瑞士一苹果店内iPhone突然爆炸致7人入院,iPhone还值得买吗?
与国产手机高歌猛进态势呈现"最萌发展差"的,是以三星.苹果为代表的海外手机厂商在过去一年的疲态.数据显示,2017年小米手机产量较2016年增长幅度达76%,OPPO和vivo则分 ...
- rpm方式安装MySQL后在命令行登录报错:ERROR 1045 (28000): Unknown error 1045
1.通过https://mirrors.tuna.tsinghua.edu.cn镜像源安装了MySQL5.7.22 rpm -ivh --force --nodeps https://mirrors. ...
- Git学习小结 ~ Lethe's Blog
学习自https://www.liaoxuefeng.com/wiki/896043488029600 一.创建版本库 (1) git init 初始化一个Git仓库 (2)添加文件到Git仓库,分两 ...
- Dubbo之心跳机制 · 房东的小黑
在网络传输中,怎么确保通道连接的可用性是一个很重要的问题,简单的说,在网络通信中有客户端和服务端,一个负责发送请求,一个负责接收请求,在保证连接有效性的背景下,这两个物体扮演了什么角色,心跳机制能有效 ...
- 产品需求说明书 PRD模版
XXX产品需求说明书 [版本号:V+数字] 编 制: 日 期: 评 审: 日 期: 批 准: 日 期: 修订记录 版本 修订章节 修订内容 ...
- 查漏补缺:进程间通信(IPC):管道
管道是UNIX系统IPC的最古老形式,所有UNIX系统都提供此种通信机制.管道有以下两种局限性: (1)历史上,管道是半双工的(即数据只能在一个方向上流动). (2)管道只能在具有公共先祖的两个进程之 ...
- 使用pandas筛选出指定列值所对应的行
在pandas中怎么样实现类似mysql查找语句的功能: select * from table where column_name = some_value; pandas中获取数据的有以下几种方法 ...
- C++走向远洋——29(长方柱类)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:长方柱类.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- Logstash实践
转载请注明出处:https://www.cnblogs.com/shining5/p/9542710.html Logstash简介 一个开源的数据收集引擎,具有实时数据传输能力,可以统一过滤来自不同 ...
- 可视化工作流程设计开发OA系统,一两个程序员就搞定!
随着信息化的发展,越来越多的公司老板要求实现企业审批流程化.一个公司在初期,人员少,流程简单,员工也会经常不按工作流程来走,甚至有些跨部门的工作因为关系原因,没有走工作流程就实施,导致后期出现问题或者 ...