Java 我需要在第二节中更改什么;如果;陈述

Java 我需要在第二节中更改什么;如果;陈述,java,if-statement,Java,If Statement,我无法确定第二个数字是否正确。“如果”语句中有错误。有人能发现吗?当我输入2 3 4或4 3 2时,它可以工作,但不像6-5 4那样进行加扰。如果我做了6-5和4,那么我的输出是-5-56 import java.util.*; // imported scanner public class ThreeNumbers{ public static void main(String[] args){ Scanner input = new Scanner(System.in

我无法确定第二个数字是否正确。“如果”语句中有错误。有人能发现吗?当我输入
2 3 4或4 3 2
时,它可以工作,但不像6-5 4那样进行加扰。如果我做了6-5和4,那么我的输出是-5-56

import java.util.*; // imported scanner
public class ThreeNumbers{

   public static void main(String[] args){

      Scanner input = new Scanner(System.in);

        // Prompt the user to enter three floating-point numbers
        System.out.print("Enter 3 numbers separated by a space: ");
        int num1 = input.nextInt();
        int num2 = input.nextInt();
        int num3 = input.nextInt();


        // Display inputs in sorted order
        System.out.print("Sorted numbers: ");

        // Find the minimum number input by the user
        if ((num1 < num2) && (num1 < num3)) {
            System.out.print(num1 + " ");
        } else if ((num2 < num1) && (num2 < num3)) {
            System.out.print(num2 + " ");
        } else if ((num3 < num1) && (num3 < num2)) {
            System.out.print(num3 + " ");

        }
        // Find the middle number input by the user
        if ((num1 != num2) && (num1 != num3) && (num1 >= num2) && (num1 <= num2)) {
            System.out.print(num1 + " ");
        } else if ((num2 != num1) && (num2 != num3)) {
            System.out.print(num2 + " ");
        } else if ((num3 != num1) && (num3 <= num2)) {
            System.out.print(num3 + " ");

        }
        // find the maximum number input by the user
        if ((num1 > num2) && (num1 > num3)) {
            System.out.print(num1 + " ");
        } else if ((num2 > num1) && (num2 > num3)) {
            System.out.print(num2 + " ");
        } else if ((num3 > num1) && (num3 > num2)) {
            System.out.print(num3 + " "); 
import java.util.*;//进口扫描仪
公共类三位数{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
//提示用户输入三个浮点数
System.out.print(“输入3个数字,用空格分隔:”);
int num1=input.nextInt();
int num2=input.nextInt();
int num3=input.nextInt();
//按排序顺序显示输入
系统输出打印(“已排序的数字:”);
//查找用户输入的最小数字
如果((num1=num2)和&(num1-num3)){
系统输出打印(num1+“”);
}否则如果((num2>num1)和&(num2>num3)){
系统输出打印(num2+“”);
}否则如果((num3>num1)和&(num3>num2)){
系统输出打印(num3+“”);

注释中的解释:

// Find the middle number input by the user
    if ((num1 != num2) && (num1 != num3) && (num1 >= num2) && (num1 <= num2)) {
    // This is never true. If num1 != num2 , it cannot be >= AND <=
        System.out.print(num1 + " ");
    } else if ((num2 != num1) && (num2 != num3)) {
    // 6 != -5 and -5 != 4 => hit --> -5 ?? Logic Error!!
        System.out.print(num2 + " ");
    } else if ((num3 != num1) && (num3 <= num2)) {
        System.out.print(num3 + " ");
对于最大值,中间是一个,不是最小值,也不是最大值:

int mid = num1+num2+num3-min-max;

假设您的问题可能与
(num1>=num2)和&(num1=-5)有关,但不是对于中间数,如果第一个条件不正确,请使用下面的条件,您将获得输出

if ((num1 != num2) && (num1 != num3) && (num1 >= num2) && (num1 <= num3))
如果((num1!=num2)&&&&(num1!=num3)&&(num1>=num2)&&(num1请尝试以下操作:


if((num1>=num2)和&(num1=num1)和&(num2=num1)和&(num3)6-5.4的预期输出,并发布完整的工作代码。代码的一半没有帮助
(num1!=num2)&(num1!=num3)和&(num1>=num2)&&(num1提示:如果你找到最小值和最大值,将所有三个初始值相加,然后减去之前找到的最小值和最大值,剩下的是中间值。6-54的预期输出为-5 4 6。(从最小到最大)我将其更改为你所说的,我仍然得到相同的输出。(输入:6-5 4…输出:-5-5 6)我不知道。我现在正在努力弄清楚。还是一个java初学者。@hslomax在勾选一个被接受之前,你真的应该阅读所有答案。这尤其会被认为是一个糟糕的答案。它有效,但没有给出任何解释。我想你的想法是在集合3中找到它们的中间数。所以在每个if语句中,我检查current number is>=一个数字和第三个数字或第一个数字<第三个数字。@Fildor它说点击检查这个答案是否解决了我的问题,或者它是否对找到我的解决方案最有帮助。我确实想知道为什么它有效,我正在试图弄清楚。但是它解决了我的问题,为什么不检查它呢?谢谢@Fildor。你的评论对我来说非常有价值。我知道我试着在我的回答中解释更多。我在根据作业说明使用“如果”语句。啊,好的。不用担心。问题是你的第二组如果语句的条件,如上所述。
public static void main(String [] args) {
  Scanner input = new Scanner(System.in);
  System.out.print("Enter 3 numbers separated by a space: ");
  int [] inputNumbers = new int[3];
  inputNumbers[0] = input.nextInt();
  inputNumbers[1] = input.nextInt();
  inputNumbers[2] = input.nextInt();
  Arrays.sort(inputNumbers);
  System.out.println(Arrays.toString(inputNumbers));
}
if ((num1 != num2) && (num1 != num3) && (num1 >= num2) && (num1 <= num3))