输入三个数字,并使用嵌套if按降序排列



我只能想出这么多。请耐心帮助我,我才14岁!!该程序只能使用嵌套的if来完成。

import java.util.Scanner;
public class P2
{
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
System.out.println("Enter three number");
int n1=sc.nextInt();
int n2=sc.nextInt();
int n3=sc.nextInt();
int max=0,min=0;
if(n1>n2)
{
if(n1>n3)
{max=n1;}
if(n3>n1)
}  
}
}

给你!仅使用ifelse

if (n1 >= n2) {
if (n1 >= n3) {
if (n2 >= n3) {
System.out.printf("%d, %d, %d", n1, n2, n3);
} else {
System.out.printf("%d, %d, %d", n1, n3, n2);
}
} else {
if (n2 >= n3) {
System.out.printf("%d, %d, %d", n2, n3, n1);
} else {
System.out.printf("%d, %d, %d", n3, n1, n2);
}
}
} else {
if (n1 >= n3) {
if (n2 >= n3) {
System.out.printf("%d, %d, %d", n2, n1, n3);
} else {
System.out.printf("%d, %d, %d", n3, n2, n1);
}
} else {
if (n2 >= n3) {
System.out.printf("%d, %d, %d", n2, n3, n1);
} else {
System.out.printf("%d, %d, %d", n3, n2, n1);
}
}
}

您可以通过多种方式解决它。我的第一次尝试如下:

import java.util.Scanner;
public class P2 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter three number");
int n1 = sc.nextInt();
int n2 = sc.nextInt();
int n3 = sc.nextInt();
int max = 0, min = 0, med = 0;
if (n1 > n2 && n1 > n3) {
max = n1;
if (n2 > n3) {
min = n3;
med = n2;
} else {
min = n2;
med = n3;
}
} else if (n2 > n1 && n2 > n3) {
max = n2;
if (n1 > n3) {
min = n3;
med = n1;
} else {
min = n1;
med = n3;
}
} else if (n3 > n1 && n3 > n2) {
max = n3;
if (n2 > n1) {
min = n1;
med = n2;
} else {
min = n2;
med = n1;
}
}
System.out.println(max + " " + med + " " + min);
}
}

如果你仔细观察内部If-else是用不同的数字重复的。所以可以提取一个返回最小-最大对的方法。

import java.util.Scanner;
public class P2 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter three number");
int n1 = sc.nextInt();
int n2 = sc.nextInt();
int n3 = sc.nextInt();
int max = 0, min = 0, med = 0;
if (n1 > n2 && n1 > n3) {
max = n1;
MinMaxPair minMaxPair = getMinMaxPair(n2, n3);
min = minMaxPair.getMin();
med = minMaxPair.getMax();
} else if (n2 > n1 && n2 > n3) {
max = n2;
MinMaxPair minMaxPair = getMinMaxPair(n1, n3);
min = minMaxPair.getMin();
med = minMaxPair.getMax();
} else if (n3 > n1 && n3 > n2) {
max = n3;
MinMaxPair minMaxPair = getMinMaxPair(n1, n2);
min = minMaxPair.getMin();
med = minMaxPair.getMax();
}
System.out.println(max + " " + med + " " + min);
}
private static class MinMaxPair {
private int min;
private int max;
public MinMaxPair(int n2, int n3) {
this.min = n2;
this.max = n3;
}
public int getMin() {
return min;
}
public int getMax() {
return max;
}
}
public static MinMaxPair getMinMaxPair(int n1, int n2) {
if (n1 > n2) {
return new MinMaxPair(n2, n1);
} else {
return new MinMaxPair(n1, n2);
}
}
}

最新更新