🌲本文收录于专栏《Java入门练习100例》——试用于学完「Java基础语法」后的巩固提高及「LeetCode刷题」前的小试牛刀。

Java入门练习100例1-10源码 提取码: uqqe

题目描述

难度:简单

用if语句实现a、b、c的值按从小到大排序

知识点

  • if判断
  • 两数交换

解题思路

1.if判断

本题整理的思路就是比较 - > 交换

if作为一种分支结构,用来根据判断条件的不同做不同的后续处理。

2.两数交换

通常的做法,好比交换两个杯子的水,需要先找来一个空杯子,也就是一个临时变量存值。代码如下:

int t=a;
a=b; 
b=t;

高级做法,不使用其他变量如何做?思考🤔一下,文末给出答案。

代码实现

/**
 * 用if语句实现a、b、c的值按从小到大排序
 */
public class question_04 {
    public static void main(String args[]){
        int a=9,b=5,c=7,t;
        if(a>b) {
            t=a; a=b; b=t;
        }
        if(a>c) {
            t=a; a=c; c=t;
        }
        if(b>c) {
            t=b; b=c; c=t;
        }
        System.out.println("a="+a+",b="+b+",c="+c);
    }
}

输出结果

总结

如何不用其他变量交换两个数的值?

答,将两个数做加/乘法。在做减/除法。代码如下:

a=a*b;
b=a/b; //等价于 a*b/b=a,即将a的值赋给了b
a=a/b; //等价于 a*b/a=b,即将b的值赋给了a

加减的方式留给大家去实现。

更多推荐

【Java入门练习100例】04.三数排序——两数交换高级算法