【问题标题】:How can I make my user aware of how many numbers they input whether it was negative or positive如何让我的用户知道他们输入了多少个数字,无论是负数还是正数
【发布时间】:2014-03-26 21:51:47
【问题描述】:

到目前为止,我有这个程序已经非常接近我想要的了。但是我试图在用户输入他/她的所有号码后找出一种方法,他可以知道他是否输入了 3 个负数和 4 个正数

假设他输入了 -7,-8,-3,2,3,4,2 它表示您输入了 3 个负数和 4 个正数

import java.util.*;
public class Testing2 {
    public static void main(String[] args) {

        int numbers;
        System.out.println("Input seven numbers");  
        for (int i = 1; i <8; i++){
            Scanner Nums = new Scanner(System.in);

            numbers = Nums.nextInt ();
            if (numbers < 0){
                System.out.println("You have " + numbers + " numbers that are negative");
            } else {
                System.out.println("You have "+ numbers + " numbers that are postive");
            }
        }
    }
}

什么是资源泄漏:nums 永远不会关闭

我正在使用 eclipse,这会显示出来。有人知道为什么吗?S

【问题讨论】:

  • 这是ux.stackexchange.com 的一个问题。最简单的解决方案是在这些号码所在的位置提供一个简单的通知/菜单。如果您需要针对特定​​设计的建议,您需要在帖子中添加图片。
  • 问题标题与您的实际问题不符
  • "You have " + numbers + " numbers that are negative",准确的说应该是"The number " + numbers + " is negative."。并且变量也应该命名为number
  • 不是吗?我认为它确实......好吧,我只需要一些可以容纳这些整数的东西,并且将它们全部合并为一个。
  • 好吧,无论如何它都不起作用...

标签: java


【解决方案1】:

试试这个:

import java.util.*;
public class Testing2 {
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // Don't need to close as System.in
        int numNegative = 0, numPositive = 0;
        System.out.println("Input seven numbers");  
        for (int i = 1; i < 8; i++){

            int number = scanner.nextInt();
            if (number >= 0){ // Is the number positive or 0
                numPositive++;
            } else { // Otherwise
                numNegative++;
            }
        }
        System.out.println("You have " + numPositive + " numbers that are positive");
        System.out.println("You have " + numNegative + " numbers that are negative");
    }
}

【讨论】:

    【解决方案2】:

    一种方法是使用一个数组来跟踪您的七个数字,并使用两个变量来跟踪正数或负数(例如 pos_numbers 和 neg_numbers),

    这样,每次收到用户输入时,if else 语句都会测试数字是正数还是负数,如果是正数,则将 pos_numbers 变量加一,如果为负数,则将其加一neg_numbers 变量加一。用户输入完数字后,程序会显示pos_numbers和neg_numbers的值,分别显示用户输入了多少个正数和负数。

    此外,最好将创建 Scanner 对象的行放在 for 循环之前,因为这只需要执行一次而不是多次。

    代码如下:

        import java.util.*;
        class Testing2 {
            public static void main(String[] args) {
    
                int[] numbers = new int[7];
                int pos_numbers = 0;
                int neg_numbers = 0;
                Scanner Nums = new Scanner(System.in);
    
                System.out.println("Input seven numbers");  
                for (int i = 0; i <7; i++) {
                    numbers[i] = Nums.nextInt();
    
                    if (numbers[i] < 0) neg_numbers++;
                    else pos_numbers++;
                }
    
                System.out.println("You have " + neg_numbers + " numbers that are negative");
                System.out.println("You have "+ pos_numbers + " numbers that are postive");
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2014-03-28
      • 2021-05-16
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 2018-07-13
      相关资源
      最近更新 更多