JavaSE学习(选择结构案例)


一、准备工作

定义从控制台获取的三个整数以及一个临时变量在交换过程中用于存储其中一个变量的值

int num1, num2, num3,temp;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请任意输入三个整数:");
        num1 = scanner.nextInt();
        num2 = scanner.nextInt();
        num3 = scanner.nextInt();

二、用三种方法对三个数字的大小进行比较

1.分别找出三个数中的最大值、最小值、中间值

        int max, min, mid;
        max = min = num1;
        if (max < num2) max = num2;
        if (max < num3) max = num3;
        System.out.println("最大数为" + max);
        if (min > num2) min = num2;
        if (min > num3) min = num3;
        System.out.println("最小数为" + min);
        mid = num1 + num2 + num3 - max - min;
        System.out.println("中间数为" + mid);

1.准备工作:定义最大值和最小值,将num1分别赋给最大值max和最小值min;
2.寻找最大值和最小值:利用选择结构将max(min)分别与num2、num3比较,如果num2、num3大于max(小于min),则进行交换;
3.寻找中间值:只需要将num1、2、3相加然后减去min、max之和即可。

2.输入任意三个数,然后从大到小排序之后输出a、b、c (枚举法)

        if (num1 > num2 && num1 > num3) {
            if (num2 > num3) {
                System.out.println(num1 + ">" + num2 + ">" + num3);
            } else {
                System.out.println(num1 + ">" + num3 + ">" + num2);
            }
        }
        if (num2 > num1 && num2 > num3) {
            if (num1 > num3) {
                System.out.println(num2 + ">" + num1 + ">" + num3);
            } else {
                System.out.println(num2 + ">" + num3 + ">" + num1);
            }
        }
        if (num3 > num2 && num3 > num1) {
            if (num2 > num1) {
                System.out.println(num3 + ">" + num2 + ">" + num1);
            } else {
                System.out.println(num3 + ">" + num1 + ">" + num2);
            }
        }

1.首先介绍三个大if:用于讨论num1最大、num2最大、num3最大;
2.介绍里面的双分支if:用于比较两外两个数的大小关系。

感觉我这个方法不是很好,小伙伴们可以给我看看你们的想法

3.输入任意三个数,然后数字由小到大交换后,逐个输出

第二个案例只需要从大到小输出,不需要交换值。而这个案例需要保证输出时效果为num1>num2>num3,即三个数可能与它原来的值不同。

        if (num1 > num2) {
            temp = num1;
            num1 = num2;
            num2 = temp;
        }
        if (num1 > num3) {
            temp = num1;
            num1 = num3;
            num3 = temp;//num1为最小值

        }
        if (num2 > num3) {
            temp = num2;
            num2 = num3;
            num3 = temp;
        }
        System.out.println(num1 + "<" + num2 + "<" + num3);
    }

1.前两个if:保证了最大值存到num1里
2.第三个if:保证了num2为中间值、num3为最小值;
3.最后:输出num1 < num2 < num3即可

三、完整代码展示

package javabase;
import java.util.Scanner;

public class StudyCode {
    public static void main(String[] args) {
        int num1, num2, num3, temp;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请任意输入三个整数:");
        num1 = scanner.nextInt();
        num2 = scanner.nextInt();
        num3 = scanner.nextInt();
//        1.分别找出三个数中的最大值、最小值、中间值
        int max, min, mid;
        max = min = num1;
        if (max < num2) max = num2;
        if (max < num3) max = num3;
        System.out.println("最大数为" + max);
        if (min > num2) min = num2;
        if (min > num3) min = num3;
        System.out.println("最小数为" + min);
        mid = num1 + num2 + num3 - max - min;
        System.out.println("中间数为" + mid);
//        2.输入任意三个数,然后从大到小排序之后输出a、b、c(枚举法)
        if (num1 > num2 && num1 > num3) {
            if (num2 > num3) {
                System.out.println(num1 + ">" + num2 + ">" + num3);
            } else {
                System.out.println(num1 + ">" + num3 + ">" + num2);
            }
        }
        if (num2 > num1 && num2 > num3) {
            if (num1 > num3) {
                System.out.println(num2 + ">" + num1 + ">" + num3);
            } else {
                System.out.println(num2 + ">" + num3 + ">" + num1);
            }
        }
        if (num3 > num2 && num3 > num1) {
            if (num2 > num1) {
                System.out.println(num3 + ">" + num2 + ">" + num1);
            } else {
                System.out.println(num3 + ">" + num1 + ">" + num2);
            }
        }
//        3.输入任意三个数,然后数字由小到大交换后,逐个输出
        if (num1 > num2) {
            temp = num1;
            num1 = num2;
            num2 = temp;
        }
        if (num1 > num3) {
            temp = num1;
            num1 = num3;
            num3 = temp;//num1为最小值

        }
        if (num2 > num3) {
            temp = num2;
            num2 = num3;
            num3 = temp;
        }
        System.out.println(num1 + "<" + num2 + "<" + num3);
    }
}

总结

虽然案例比较简单,但是我认为动手做一遍才是做重要的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值