Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中找到最接近零的五个输入数_Java_Java.util.scanner - Fatal编程技术网

如何在java中找到最接近零的五个输入数

如何在java中找到最接近零的五个输入数,java,java.util.scanner,Java,Java.util.scanner,我是java编程新手。有人可以教你如何使用扫描仪获取最接近零的数字。示例用户插入第一个数字=-4,第二个数字=3,以此类推,数字越大,则接近零的答案为3 下面是代码 import java.util.Scanner; class NearZero { public static void main(String[]args) { Scanner scn = new Scanner(System.in); int firstNumber,secondNumber,third

我是java编程新手。有人可以教你如何使用
扫描仪
获取最接近零的数字。示例用户插入第一个数字=-4,第二个数字=3,以此类推,数字越大,则接近零的答案为3

下面是代码

import java.util.Scanner;

class NearZero {

public static void main(String[]args) {

    Scanner scn = new Scanner(System.in);

    int firstNumber,secondNumber,thirdNumber,fourNumber,fiveNumber;
    int nearNumberZero;


    System.out.println("Enter number 1");
    firstNumber = scn.nextInt();
    System.out.println("Enter number 2");
    secondNumber = scn.nextInt();
    System.out.println("Enter number 3");
    thirdNumber = scn.nextInt();
    System.out.println("Enter number 4");
    fourNumber = scn.nextInt();
    System.out.println("Enter number 5");
    fiveNumber = scn.nextInt();

    nearNumberZero =

    System.out.println("The number near zero 0 is");
}

} 

只需使用Math.abs对它们进行比较:

int bestNumber = firstNumber;
if (Math.abs(secondNumber) < Math.abs(bestNumber)) {
    bestNumber = secondNumber;
}
if (Math.abs(thirdNumber) < Math.abs(bestNumber)) {
    bestNumber = thirdNumber;
}
and so on...

理想情况下,您应该构建一个循环来询问和比较数字,而不是将同一代码重复五次。您可以将其作为下一个练习。

只需使用Math.abs对它们进行比较:

int bestNumber = firstNumber;
if (Math.abs(secondNumber) < Math.abs(bestNumber)) {
    bestNumber = secondNumber;
}
if (Math.abs(thirdNumber) < Math.abs(bestNumber)) {
    bestNumber = thirdNumber;
}
and so on...
理想情况下,您应该构建一个循环来询问和比较数字,而不是将同一代码重复五次。你可以让这成为你的下一个练习。

试试这个:

import java.util.*;

  class NearZero {

   public static void main(String[] args) {


    Scanner scn = new Scanner(System.in);

    ArrayList<Integer> integers = new ArrayList<>();


    System.out.println("Enter number 1");
    integers.add(scn.nextInt());
    System.out.println("Enter number 2");
    integers.add(scn.nextInt());
    System.out.println("Enter number 3");
    integers.add(scn.nextInt());
    System.out.println("Enter number 4");
    integers.add(scn.nextInt());
    System.out.println("Enter number 5");
    integers.add(scn.nextInt());
    Collections.sort(integers, Comparator.comparingInt(Math::abs));

    System.out.println("The number near zero 0 is" + integers.get(0));
  } 
}
import java.util.*;
类接近零{
公共静态void main(字符串[]args){
扫描仪scn=新扫描仪(System.in);
ArrayList整数=新的ArrayList();
System.out.println(“输入数字1”);
add(scn.nextInt());
System.out.println(“输入数字2”);
add(scn.nextInt());
System.out.println(“输入数字3”);
add(scn.nextInt());
System.out.println(“输入数字4”);
add(scn.nextInt());
System.out.println(“输入数字5”);
add(scn.nextInt());
Collections.sort(整数,Comparator.comparingInt(Math::abs));
System.out.println(“接近零的数字0是”+整数.get(0));
} 
}
试试这个:

import java.util.*;

  class NearZero {

   public static void main(String[] args) {


    Scanner scn = new Scanner(System.in);

    ArrayList<Integer> integers = new ArrayList<>();


    System.out.println("Enter number 1");
    integers.add(scn.nextInt());
    System.out.println("Enter number 2");
    integers.add(scn.nextInt());
    System.out.println("Enter number 3");
    integers.add(scn.nextInt());
    System.out.println("Enter number 4");
    integers.add(scn.nextInt());
    System.out.println("Enter number 5");
    integers.add(scn.nextInt());
    Collections.sort(integers, Comparator.comparingInt(Math::abs));

    System.out.println("The number near zero 0 is" + integers.get(0));
  } 
}
import java.util.*;
类接近零{
公共静态void main(字符串[]args){
扫描仪scn=新扫描仪(System.in);
ArrayList整数=新的ArrayList();
System.out.println(“输入数字1”);
add(scn.nextInt());
System.out.println(“输入数字2”);
add(scn.nextInt());
System.out.println(“输入数字3”);
add(scn.nextInt());
System.out.println(“输入数字4”);
add(scn.nextInt());
System.out.println(“输入数字5”);
add(scn.nextInt());
Collections.sort(整数,Comparator.comparingInt(Math::abs));
System.out.println(“接近零的数字0是”+整数.get(0));
} 
}

您可以在
循环中将输入保留到您的号码
,因为操作是相同的,并按照以下方式操作

import java.util.Scanner;

class NearZero {

    public static void main(String[] args) {
        Scanner scn = new Scanner(System.in);
        int number;
        int nearNumberZero = 0;

        for (int i = 1; i <= 5; i++) {
            System.out.println("Enter number " + i);
            number = scn.nextInt();
            // by default first is nearest or it will check for other numbers
            if (i == 1 || Math.abs(number) < Math.abs(nearNumberZero))
                nearNumberZero = number;
        }
        System.out.println("The number near zero 0 is - " + nearNumberZero);
        scn.close();//prefer closing your resources (with a try-finally preferrable)
    }

}
import java.util.Scanner;
类接近零{
公共静态void main(字符串[]args){
扫描仪scn=新扫描仪(System.in);
整数;
int nearNumberZero=0;

对于(int i=1;i您可以在
循环中将输入保持为您的数字,因为操作相同,如下所示

import java.util.Scanner;

class NearZero {

    public static void main(String[] args) {
        Scanner scn = new Scanner(System.in);
        int number;
        int nearNumberZero = 0;

        for (int i = 1; i <= 5; i++) {
            System.out.println("Enter number " + i);
            number = scn.nextInt();
            // by default first is nearest or it will check for other numbers
            if (i == 1 || Math.abs(number) < Math.abs(nearNumberZero))
                nearNumberZero = number;
        }
        System.out.println("The number near zero 0 is - " + nearNumberZero);
        scn.close();//prefer closing your resources (with a try-finally preferrable)
    }

}
import java.util.Scanner;
类接近零{
公共静态void main(字符串[]args){
扫描仪scn=新扫描仪(System.in);
整数;
int nearNumberZero=0;

对于(inti=1;i,您不需要任何花哨的比较器或列表

定义一个小助手方法:

static int chooseClosestToZero(int a, int b) {
  return Math.abs(a) < Math.abs(b)) ? a : b;
}
现在只需调用该方法即可更新:

System.out.println("Enter number 1");
closestToZero = chooseClosestToZero(closestToZero, scn.nextInt());

System.out.println("Enter number 2");
closestToZero = chooseClosestToZero(closestToZero, scn.nextInt());

// etc.
如所述,您可以在循环中执行此操作:

for (int i = 1; i <= 5; ++i) {
  System.out.println("Enter number " + i);
  closestToZero = chooseClosestToZero(closestToZero, scn.nextInt());
}

通过此更改,您可以使用
Integer.MIN\u值
作为
最接近零的
的初始值,而
int
的初始值实际上离零最远。

您不需要任何花哨的比较器或列表

定义一个小助手方法:

static int chooseClosestToZero(int a, int b) {
  return Math.abs(a) < Math.abs(b)) ? a : b;
}
现在只需调用该方法即可更新:

System.out.println("Enter number 1");
closestToZero = chooseClosestToZero(closestToZero, scn.nextInt());

System.out.println("Enter number 2");
closestToZero = chooseClosestToZero(closestToZero, scn.nextInt());

// etc.
如所述,您可以在循环中执行此操作:

for (int i = 1; i <= 5; ++i) {
  System.out.println("Enter number " + i);
  closestToZero = chooseClosestToZero(closestToZero, scn.nextInt());
}

通过此更改,您可以使用
Integer.MIN\u VALUE
作为
最接近零的
的初始值,该值实际上与
int
的值相差很远。

“有人可以教”这不是一个教学网站。在获取数字方面,你有一个良好的开端;但是试一下,看看你能走多远。然后回来问一个具体的问题,为什么这样做不起作用:)“有人可以教学”这不是一个教学网站。你已经有了一个很好的开始,在获取数字方面;但是试着看看你能走多远。然后回来问一个具体的问题,关于为什么这样做不起作用:)这对OP的示例输入不起作用。感谢Andy Turner,我错过了一些东西并修复了itOK,它现在可以工作了;但您不需要将数字放入列表并对它们进行排序以找到最小值。是的,这是真的,但我对Addy Sahaja实现做了较少的编码更改。这对OP的示例输入不起作用。感谢Andy Turner,我错过了d一些东西并修复了itOK,它现在可以工作了;但是您不需要将数字放入列表并对它们进行排序以找到最小值。是的,这是真的,但我对Addy Sahaja实现做了较少的编码更改