自学Java之基础篇——过年了,使用三元运算符求“三只猪”的体重

需求:

  1. 过年了,输入三只猪的体重,判断那只最重,那只最轻 (你懂的)
  2. 输出三只猪的体重,并用文字告知那只最重
  3. 如果有相同的情况,请一并告知

用0和1来代表最重和最轻

第一只第二只第三只
最重/最轻
一样重

分析:

  1. 三只重量不同 // 直接输出:1,2,3
  2. 两只重量相同 //无序,但是要分情况:12,23,13
  3. 三只重量相同//直接输出:123

方法

  • 先用三元运算符 <= 和 >= 求出最大值和最小值(里面包含相等情况);

  • 两只相同的无序情况可以用 1 和 0 配合加法进行合并:int
    A = a1 + a2 + a3;

  • 输出的字符为:
    “三只最重的是: " + tempChar1 + “猪, " + “它的体重是” + maxW +” kg ”
    tempchar无非是三种情况:
    123( 一个 if ),
    12 + 3 / 1 +23 / 13 + 2(两个 if 嵌套),
    1 / 2 / 3( else );

  • 第一次使用三元求最大值,输出数字;

  • 第二次再使用三元求最大值,输出字符:” 第 n 只 “;

程序写得是实在长,因为初学,目前也没有想到太好的方法

/*
输入三个猪的体重
判断哪只最大,最小
判断哪几只体重相同
*/
package com.itheima;
import java.util.Scanner;

public class practice010{
    public static void main(String[]arge){

        Scanner sc = new Scanner(System.in);

        int tiger1W;
        int tiger2W;
        int tiger3W;

        String one = "第一只";
        String two = "第二只";
        String three = "第三只";

        System.out.println();
        System.out.println("请输入三个猪的体重[kg]");
        System.out.println();

        System.out.println("请输入第一个猪的体重[kg]");
        tiger1W = sc.nextInt();

        System.out.println("请输入第二个猪的体重[kg]");
        tiger2W = sc.nextInt();

        System.out.println("请输入第三个猪的体重[kg]");
        tiger3W = sc.nextInt();

        System.out.println();
        System.out.println("第一只猪的重量是" + tiger1W +"kg");
        System.out.println("第二只猪的重量是" + tiger2W +"kg");
        System.out.println("第三只猪的重量是" + tiger3W +"kg");

        //-----------------------------------------------
        int temp1 = tiger1W >= tiger2W? tiger1W: tiger2W;//求最大值

        int maxW = temp1 >= tiger3W? temp1: tiger3W;
        //-----------------------------------------------
        int temp2 = tiger1W <= tiger2W? tiger1W: tiger2W;//求最小值

        int minW = temp1 <= tiger3W? temp2: tiger3W;
        //-----------------------------------------------

        int a1 = tiger1W - tiger2W ==0? 0: 1;
        int a2 = tiger2W - tiger3W ==0? 0: 1;
        int a3 = tiger3W - tiger1W ==0? 0: 1;

        int A = a1 + a2 + a3;
        String case00 = "";
        String tempChar1 = "",tempChar2 = "";

        if( A ==0 ){
            //{
            case00 = "三只的体重相同";
            tempChar1 = "第一只,第二只和第三只";
            tempChar2 = "第一只,第二只和第三只";
            //}

        }else if( A == 2 ){
            if ( a1 == 0 ){
                {
                    case00 = "第一只和第二只的体重相同";

                    if ( tiger1W == maxW ){

                        //{
                        tempChar1 = "第一只和第二只";
                        tempChar2 = "第三只";
                        //}

                    }else{

                        //{
                        tempChar2 = "第一只和第二只";
                        tempChar1 = "第三只";
                        //{

                    }

                }
            }else if( a2 == 0 ){
                {
                    case00 = "第二只和第三只的体重相同";

                    if ( tiger1W == maxW ){

                        //{
                        tempChar1 = "第二只和第三只";
                        tempChar2 = "第一只";
                        //}

                    }else{

                        //{
                        tempChar2 = "第二只和第三只";
                        tempChar1 = "第一只";
                        //}
                    }
                }
            }else{
                {
                    case00 = "第一只和第三只的体重相同";

                    if ( tiger1W == maxW ){

                        //{
                        tempChar1 = "第一只和第三只";
                        tempChar2 = "第二只";
                        //}

                    }else{

                        //{
                        tempChar2 = "第一只和第三只";
                        tempChar1 = "第二只";
                        //}
                    }
                }
            }
        }else {

            case00 = "没有一只的重量相同";
            //-----------------------------------------------
            tempChar1 = tiger1W > tiger2W? one: two;//求最大的是第几只

            tempChar1 = temp1 > tiger3W? tempChar1: three;
            //-----------------------------------------------
            tempChar2 = tiger1W < tiger2W? one: two;//求最小的是第几只

            tempChar2 = temp1 < tiger3W? tempChar2: three;
        }

        System.out.println();
        System.out.println("三只最重的是: "  + tempChar1 + "猪, " + "它的体重是" + maxW +"kg");
        System.out.println("三只最轻的是: "  + tempChar2 + "猪, " + "它的体重是" + minW +"kg");

        System.out.println();
        System.out.println( case00 );
    }
}

猪:我招你惹你了?!
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值