Java 检查用户是否直接输入负数?

Java 检查用户是否直接输入负数?,java,negative-number,Java,Negative Number,我试图制作一个程序,用户输入一个数字,程序计算最大值和最小值,并不断询问,直到遇到负数 详细说明:- 但是,如果用户在启动时输入负数,则应打印“最大值和最小值未定义!”并结束 但如果输入正数,程序将打印最大值和最小值,直到遇到负数为止,程序仍会继续要求更多的数字,看到负数时,程序仍会打印最大值和最小值,然后结束 有办法做到这一点吗 我尝试过的内容如下:- import java.util.Scanner; public class NegativeNum { public static

我试图制作一个程序,用户输入一个数字,程序计算最大值和最小值,并不断询问,直到遇到负数

详细说明:-

但是,如果用户在启动时输入负数,则应打印“最大值和最小值未定义!”并结束

但如果输入正数,程序将打印最大值和最小值,直到遇到负数为止,程序仍会继续要求更多的数字,看到负数时,程序仍会打印最大值和最小值,然后结束

有办法做到这一点吗

我尝试过的内容如下:-

import java.util.Scanner;

public class NegativeNum {
    public static void main(String []args) {

        Scanner keys = new Scanner(System.in);
        System.out.println("Enter a number: ");

        double num = keys.nextInt();
        double Max = num+0.5;
        double Min = num-0.5;

        if(num<0) {
            System.out.println("Max and Min undefined");
        }

        while(num>0) {
            System.out.println("Max = " + Max);
            System.out.println("Min = " + Min);
            System.out.println("\nEnter another: ");
            num = keys.nextInt();

        }

        {
            num = num*-1;
            System.out.println("Max = " + Max);
            System.out.println("Min = " + Min);
            System.out.println("Number is Negative! System Shutdown!");
            System.exit(1);

        }

    }
}
import java.util.Scanner;
公共类负枚举{
公共静态void main(字符串[]args){
扫描仪键=新扫描仪(System.in);
System.out.println(“输入一个数字:”);
double num=keys.nextInt();
双倍最大值=num+0.5;
双最小值=num-0.5;
如果(num0){
System.out.println(“Max=”+Max);
System.out.println(“Min=”+Min);
System.out.println(“\n输入另一个:”);
num=keys.nextInt();
}
{
num=num*-1;
System.out.println(“Max=”+Max);
System.out.println(“Min=”+Min);
System.out.println(“数字为负!系统关闭!”);
系统出口(1);
}
}
}
导入java.util.Scanner;
公共类负枚举{
公共静态void main(字符串[]args){
扫描仪键=新扫描仪(System.in);
System.out.println(“输入一个数字:”);
double num=keys.nextInt();
双倍最大值=num+0.5;
双最小值=num-0.5;

如果(num,只需在迭代过程中计算最大值和最小值

while(num>0) {
    System.out.println("Max = " + Max);
    System.out.println("Min = " + Min);
    System.out.println("\nEnter another: ");
    num = keys.nextInt();
    if(Math.abs(num) > max) {
        max = Math.abs(num);
    } 
    if(Math.abs(num) < min) {
        min = Math.abs(num);
    }  
}

System.out.println("Max = " + Max);
System.out.println("Min = " + Min);
System.out.println("Number is Negative! System Shutdown!");
System.exit(1);
while(num>0){
System.out.println(“Max=”+Max);
System.out.println(“Min=”+Min);
System.out.println(“\n输入另一个:”);
num=keys.nextInt();
如果(数学绝对值(数值)>最大值){
max=Math.abs(num);
} 
如果(数学绝对值(num)
导入java.util.Scanner;
公共类负枚举{
private static int entryCount=0;//计算条目数
公共静态void main(字符串[]args){
扫描仪键=新扫描仪(System.in);
System.out.println(“输入一个数字:”);
double num=keys.nextInt();
双倍最大值=num+0.5;
双最小值=num-0.5;
while(true){
如果(num<0&&entryCount==0){//确保它是第一个条目,并且也是负值
System.out.println(“数字为负!系统关闭!”);
系统出口(1);
}
System.out.println(“Max=”+Max);
System.out.println(“Min=”+Min);
System.out.println(“\n输入另一个:”);
num=keys.nextInt();
entryCount++;
}
}
}

此代码成功运行所有情况:-

import java.util.Scanner;

public class class2 
{


        public void positive(double num)
        {
         double Max = num+0.5;
         double Min = num-0.5;

             System.out.println("Max = " + Max);
             System.out.println("Min = " + Min);
             System.out.println("\nEnter another: ");


        }

        public void negative(double num,String k)
            {

            double Max = num+0.5;
            double Min = num-0.5;
            System.out.println("Max = " + Max);
            System.out.println("Min = " + Min);


               if(k=="terminate")
               {
                 System.out.println("System is shutting down");
                 System.exit(1);
               }
            System.out.println("\nEnter another: ");

       }

public static void main(String []args) 
{

    class2 obj=new class2();
    Scanner keys = new Scanner(System.in);
    System.out.println("Enter a number: ");
    boolean bol=true;
    String k="";
    double num = keys.nextInt();
    int count=1;
    if(num<0 && count ==1) 
    {
       k="terminate";
       count=count+1;

       System.out.println("Max and Min undefined");
       System.exit(1);
       System.out.println("\nEnter another: ");
       num = keys.nextInt();

    }

    while(bol==true)
    {
    while(num>0) 
    {
           count=count+1;
           obj.positive(num);
           num = keys.nextInt();


    }
    while(num<0 && count!=2)
    {
         k="terminate";
         obj.negative(num,k);
         num = keys.nextInt();
    }
    count=count+1;
    }

}
}
import java.util.Scanner;
公共课2
{
公共无效正(双数值)
{
双倍最大值=num+0.5;
双最小值=num-0.5;
System.out.println(“Max=”+Max);
System.out.println(“Min=”+Min);
System.out.println(“\n输入另一个:”);
}
public void负值(双数值,字符串k)
{
双倍最大值=num+0.5;
双最小值=num-0.5;
System.out.println(“Max=”+Max);
System.out.println(“Min=”+Min);
如果(k==“终止”)
{
System.out.println(“系统正在关闭”);
系统出口(1);
}
System.out.println(“\n输入另一个:”);
}
公共静态void main(字符串[]args)
{
class2 obj=新的class2();
扫描仪键=新扫描仪(System.in);
System.out.println(“输入一个数字:”);
布尔bol=真;
字符串k=“”;
double num=keys.nextInt();
整数计数=1;
如果(num0)
{
计数=计数+1;
目标阳性(num);
num=keys.nextInt();
}

当输入负数时,它应该将其转换为正数并重新计算新的最大值和最小值吗?还是重复使用旧的最大值和最小值?@KacyRaye-是的,因此如果输入-5,它将找到正5的最小值和最大值。它应该在启动时执行相同的操作吗?在启动时,如果用户直接输入负数,它应该打印“最大值和最小值未定义!"然后停止程序如果在输入正数后输入负数-它应该打印负数的最大值和最小值-它是如何做到的-它当前没有这样做与您之前的评论相矛盾:
是的,因此如果输入-5,它将找到正5的最小值和最大值。
请澄清。我编辑了我的答案,以确保数字为正数,然后根据正数计算最大值和最小值。如果在程序启动时输入负数,程序应打印“最大值和最小值未定义”。但是,如果用户首先输入一个正数,它将继续要求输入一个数字,如果输入了一个负数,那么它应该打印最大值和最小值。只有在启动时,它才应该打印该值。@Mathematica好的,所以最大值和最小值在开始时只计算一次,并且只打印出负数?否-最大值和最小值将被打印出来只要用户输入一个正数,它将保持用户输入一个数字。如果在开始时输入一个负数,它将打印“最大值和最小值未定义”,如果输入一个正数,则输入一个负数,它将计算该数字的最大值和最小值(忽略负数),然后停止
import java.util.Scanner;

public class NegativeNum {
    private static int entryCount = 0;  // Count the Number of Entries

    public static void main(String []args) {

        Scanner keys = new Scanner(System.in);
        System.out.println("Enter a number: ");

        double num = keys.nextInt();
        double Max = num+0.5;
        double Min = num-0.5;


        while(true) {
            if( num < 0 && entryCount == 0) { // Make sure if it's first entry and it's negative too
                System.out.println("Number is Negative! System Shutdown!");
                System.exit(1);
            }
            System.out.println("Max = " + Max);
            System.out.println("Min = " + Min);
            System.out.println("\nEnter another: ");
            num = keys.nextInt();
            entryCount++;
        }

    }
}
import java.util.Scanner;

public class class2 
{


        public void positive(double num)
        {
         double Max = num+0.5;
         double Min = num-0.5;

             System.out.println("Max = " + Max);
             System.out.println("Min = " + Min);
             System.out.println("\nEnter another: ");


        }

        public void negative(double num,String k)
            {

            double Max = num+0.5;
            double Min = num-0.5;
            System.out.println("Max = " + Max);
            System.out.println("Min = " + Min);


               if(k=="terminate")
               {
                 System.out.println("System is shutting down");
                 System.exit(1);
               }
            System.out.println("\nEnter another: ");

       }

public static void main(String []args) 
{

    class2 obj=new class2();
    Scanner keys = new Scanner(System.in);
    System.out.println("Enter a number: ");
    boolean bol=true;
    String k="";
    double num = keys.nextInt();
    int count=1;
    if(num<0 && count ==1) 
    {
       k="terminate";
       count=count+1;

       System.out.println("Max and Min undefined");
       System.exit(1);
       System.out.println("\nEnter another: ");
       num = keys.nextInt();

    }

    while(bol==true)
    {
    while(num>0) 
    {
           count=count+1;
           obj.positive(num);
           num = keys.nextInt();


    }
    while(num<0 && count!=2)
    {
         k="terminate";
         obj.negative(num,k);
         num = keys.nextInt();
    }
    count=count+1;
    }

}
}