能解决题目的代码并不是一次就可以写好的

我们需要根据我们的思路写出后通过debug模式找到不足再进行更改

多次测试后才可得到能解决题目的代码!

通过学习,练习【Java基础经典练习题】,让我们一起来培养这种解决问题思路。

一、视频讲解

点击这里即可去B站观看

二、思路分析

Q1:如何从键盘输入3个整数?

A1: 键盘输入需使用Scanner语句,使用Scanner语句需以下4步骤

  1. 导包(可以在第二步创建后按住“Ctrl+shift+O”来自动导包)

    import java.util.Scanner;
  2. 创建 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: 这个问题的回答就是解题的核心啦!

  1. 因为本题要求是从小到大输出3这个数,我们先将我们从键盘输入的数用3个变量x、y、z来保存。
  2. 所以我们的基本思路就是:让3个数经过一系列变化后

    x:存放3数中最小的那个数

    y:存放三数中处在中间位置的数

    z:存放3数中最大的数
  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交换位置

三、代码+详解+结果

代码:

  1. package Exercise;
  2. import java.util.Scanner;
  3. public class ThreeNumberSort {
  4. // 题目:输入3个整数,并将其由小到大输出
  5. public static void main(String[] args) {
  6. int temp=0;
  7. Scanner sc = new Scanner(System.in);//使用Scanner键盘输入
  8. System.out.println("请输入3个整数");
  9. int x = sc.nextInt();//将键盘输入的第一个数保存在int型x变量中
  10. int y = sc.nextInt();//将键盘输入的第二个数保存在int型y变量中
  11. int z = sc.nextInt();//将键盘输入的第三个数保存在int型z变量中
  12. sc.close();//使用完键盘输入后关闭
  13. if(x>y) {//如果x>y那么x,y需要交换位置
  14. temp=x;//借助temp变量,将二者间的大数x存在temp中
  15. x=y;//让小数y到x的位置
  16. y=temp;//让大数x(即此时的temp)到y的位置,这时x y中的数就是从小到大的顺序
  17. }
  18. if(x>z) {//如果x>z那么x,z需要交换位置
  19. temp=x;//借助temp变量,将二者间的大数x存在temp中
  20. x=z;//让小数z到x的位置
  21. z=temp;//让大数x(即此时的temp)到z的位置,这时x z中的数就是从小到大的顺序
  22. }
  23. if(y>z) {//如果y>z那么y,z需要交换位置
  24. temp=y;//借助temp变量,将二者间的大数y存在temp中
  25. y=z;//让小数z到y的位置
  26. z=temp;//让大数y(即此时的temp)到z的位置,这时y z中的数就是从小到大的顺序
  27. }
  28. System.out.println(x+" "+y+" "+z);// 输出由小到大排序后的xyz三数
  29. }
  30. }

详解:

以x:6 y:48 z:-2为例

  1. x=6,y=48 不满足第一个if语句条件if(x>y)
  • 所以不执行第一个if语句,继续向下执行。此时x,y,z的值为:6 48 -2
  1. x=6,z=-2满足第二个if语句条件if(x>z)
  • 所以执行if语句中的代码块:
  1. if(x>z) {//如果x>z那么x,z需要交换位置
  2. temp=x;//借助temp变量,将二者间的大数x存在temp中
  3. x=z;//让小数z到x的位置
  4. z=temp;//让大数x(即此时的temp)到z的位置,这时x z中的数就是从小到大的顺序
  5. }
  • 此时temp=6;

    x=-2

    z=6

    执行完这个if语句后x,y,z的值为:-2 48 6
  1. 继续下一个if语句判断,这时y=48,z=6

    满足第三个if语句条件if(y>z)
  • 所以执行if语句中的代码块:
  1. if(y>z) {//如果y>z那么y,z需要交换位置
  2. temp=y;//借助temp变量,将二者间的大数y存在temp中
  3. y=z;//让小数z到y的位置
  4. z=temp;//让大数y(即此时的temp)到z的位置,这时y z中的数就是从小到大的顺序
  5. }
  • 此时temp=48;

    y=6

    z=48

    执行完这个if语句后x,y,z的值为:-2 6 48
  1. 此时xyz的值已是从小到大的顺序,我们输出此时的x y z:-2 6 48

结果:

四、彩蛋

【视频+图文】Java经典基础练习题(三):输入3个整数,并将其由小到大输出的更多相关文章

  1. 【视频+图文】Java经典基础练习题(六):猴子吃桃子问题

    目录 一.具体题目 二.视频讲解 三.思路分析(逆向思维) 四.代码+结果 代码: 结果: 五.彩蛋 一.具体题目 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个  第二天 早上又将剩下 ...

  2. Java语言基础(三)

    Java语言基础(三) 一.    补码 (1).之所以有补码是因为要考虑成本 就是造计算机的成本 (2).下面让我们分析一下补码 以四位补码为例 <1> 高位是符号位,它决定其是正数还是 ...

  3. Java 多线程基础(三) start() 和 run()

    Java 多线程基础(三) start() 和 run() 通过之前的学习可以看到,创建多线程过程中,最常用的便是 Thread 类中的 start() 方法和线程类的 run() 方法.两个方法都包 ...

  4. python基础练习题(输入三个整数x,y,z,请把这三个数由小到大输出)

    day3 --------------------------------------------------------------- 实例005:三数排序 题目: 输入三个整数x,y,z,请把这三 ...

  5. 【重走Android之路】【Java面向对象基础(三)】面向对象思想

    [重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想   1 面向对象的WWH   1.1 What--什么是面向对象         首先,要理解“对象”.在Thinkin ...

  6. 超全面!1.5w字总结50个Java经典基础面试题(已根据知识点分类)

    大家好,我是fancy. 在面试中将基础问题回答好就是成功的一半. 我总结了50道经典的Java基础面试题,里面包含面试要回答的知识重点,并且我根据知识类型进行了分类,可以说非常全面了. 小伙伴们点赞 ...

  7. Java的基础知识三

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

  8. java并发基础(三)--- 任务执行

    第6章开始是第二部分,讲解结构化并发应用程序,大多数并发应用程序都是围绕“任务执行”构造的,任务通常是一些抽象的且离散的工作单元. 一.线程池 大多数服务器应用程序都提供了一种自然的任务边界:以独立的 ...

  9. Java经典基础与高级面试36题和答案

    1.”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法? “static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实 ...

随机推荐

  1. 不装逼地说,在 Google 到底能学到啥?

    不装逼地说,在 Google 到底能学到啥? 2017-03-17 PHP开发者 (点击上方蓝字,快速关注我们) 本文转自公众号「半轻人」(ID:ban-qing-ren),伯乐在线/PHP开发者已获 ...

  2. CSS——NO.4(继承、层叠、特殊性、重要性)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  3. C++扬帆远航——19(斐波那契数列第20项)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:fib.cpp * 作者:常轩 * 微信公众号:Worldhel ...

  4. Spring Cloud 是什么

    概念定义 Spring Cloud 是一个服务治理平台,提供了一些服务框架.包含了:服务注册与发现.配置中心.消息中心 .负载均衡.数据监控等等. Spring Cloud 是一个微服务框架,相比 D ...

  5. Matplotlib数据可视化(4):折线图与散点图

    In [1]: from matplotlib import pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParam ...

  6. 7-41 jmu-python-最佳身高 (10 分)

    最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高).下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高. 输入格式: 输入第一行给出正整数N(≤10),为前来查询的用 ...

  7. 盒马微信小程序

    盒马app刚出现,就吸足了眼球.最近看了看盒马界面,很Q,就想着仿照app写个小程序. 功能介绍 好奇微信小程序是如何制作的,也对盒马app感兴趣,就尝试写了这个盒马小程序.实现了app的部分功能,还 ...

  8. echart 新手踩坑

    仪表盘踩坑 我采用的是单文件引入的方式来加载echarts图标也可以使用配置等方式详情参考文档,如果同学们要做出更加丰富的样式请参考文档配置手册配置手册:http://echarts.baidu.co ...

  9. Flink系列之状态及检查点

    Flink不同于其他实时计算的框架之处是它可以提供针对不同的状态进行编程和计算.本篇文章的主要思路如下,大家可以选择性阅读. 1. Flink的状态分类及不同点. 2. Flink针对不同的状态进行编 ...

  10. windows7免费永久激活方法分享

    前言 我相信,这里肯定有看过我上一篇博客的同学. 我说了,为解决windows7激活问题,我会找一个比较好的方法. 首先先让大家看一看激活前windows7的计算机属性: 显示是未激活的.下面就是方法 ...