【视频+图文】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”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实 ...
随机推荐
- Springboot整合Dubbo和Zookeeper
Dubbo是一款由阿里巴巴开发的远程服务调用框架(RPC),其可以透明化的调用远程服务,就像调用本地服务一样简单.截至目前,Dubbo发布了基于Spring Boot构建的版本,版本号为0.2.0,这 ...
- 换到GitHub 博客了
觉得还是github上面的代码风格看起来舒服些,所以决定把blog搬到github上面去了.以后这里就作为一个放资料的地方吧. github地址:http://l34rner.github.io/
- 7/8段码管(LED)
LED显示器在许多的数字系统中作为显示输出设备,使用非常广泛.它的结构是由发光二极管构成的a.b.c.d.e.f和g七段,并由此得名,实际上每个LED还有一个发光段dp,一般用于表示小数点,所以也有少 ...
- 初学Qt——vs2012开发环境下的窗体跳转
最近接了份外快,要求使用vs+qt开发一个简单的数据管理系统.qt开发使用的语言是c++,然而c++只是大一第二学期有教过而已,基本也差不多忘光了,废话不多说,讲下今天遇到的问题吧 如标题所说,窗体跳 ...
- [Statistics] Comparison of Three Correlation Coefficient: Pearson, Kendall, Spearman
There are three popular metrics to measure the correlation between two random variables: Pearson's c ...
- 如何在windows server上安装 Windows评估和部署工具包
此文是<.NET内存宝典>一书的售后服务系列文章之一. 在<.NET内存宝典>一书(目前我还在翻译本书,预计年底出版)的第3章 “内存测量”里的“Windows性能工具包”一节 ...
- ASP.NET CORE 管道模型及中间件使用解读
说到ASP.NET CORE 管道模型不得不先来看看之前的ASP.NET 的管道模型,两者差异很大,.NET CORE 3.1 后完全重新设计了框架的底层,.net core 3.1 的管道模型更加灵 ...
- swoole(6)Task异步任务
一:什么是task进程? task进程是独立与worker进程的一组进程 ,他主要处理耗时较长的业务逻辑,并且不影响worker进程处理客户端的请求.worker进程通过task()函数把数据投递到 ...
- 微信Android自动播放视频(可交互,设置层级,无控制条,非X5)ffmpeg,jsmpeg.js,.ts视频
原料: ffmpeg : http://ffmpeg.zeranoe.com/builds/ win64 https://evermeet.cx/ffmpeg/ mac OS X 64 jsmp ...
- 动手搞一个Promise
Javascript语言的执行环境是"单线程"(single thread).所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任 ...