间隔中的Java扫描程序计数

时间:2015-10-18 18:27:13

标签: java

我是java的新手,我必须编写一个代码,询问用户两个数字的间隔。然后用户必须引入n个数字,程序必须返回属于该间隔的数量。

我试图这样做,这就是我所拥有的:

import java.util.*;
public class NumsInter {

  public static void main(String[] args) {
    Scanner sc;
    int a,b,nums,count;
    sc = new Scanner (System.in);
    System.out.print ("Write two numbers a and b(a<=b)(interval): ");
    a=sc.nextInt();
    b=sc.nextInt();
    count=0;
    System.out.println("write a number: ");
    while(sc.hasNextInt()){
        nums=sc.nextInt();
        if (a<=nums && nums>=b){
            count= count + 1;
        } else {
            count= count;
        }
    }
    System.out.println(count +" numbers are included in ("+a+","+b+")");

    }
}

示例:如果用户写入2和6,然后写入4,4,3,1,则输出应为3。

由于我是新手,我不知道如何才能做到这一点好的方式,能帮助一下吗? PD:我如何打破循环以便获得输出? 谢谢!

3 个答案:

答案 0 :(得分:0)

从用户获取输入并在此数组中存储后取int [] no_between_max&min。之后采用for循环并将数组的值与max和min ant进行比较,增加count变量。

int noOfItem=sc.nextInt();
    int [] no_between_max_min = new int[noOfItem];
    for(int i=0;i<noOfItem;i++){
        no_between_max_min[i]=sc.nextInt();
    }
    for(int i=0;i<no_between_max_min.length;i++){
        if(no_between_max_min[i]>=a&&no_between_max_min[i]<=b){
            count++;
        }
    }

答案 1 :(得分:0)

尝试这样的事情

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

    System.out.println("Enter the numbers you want to test, enter 'stop' to stop");
    boolean userInput = true;

    while(input.hasNextInt() && userInput){
        if(input.hasNext("stop")){userInput = false;}
        numbers.add(input.nextInt());
        }

你有一个循环,检查是否有下一个int,同时检查用户是否完成。

他们就是这样打印你的答案

for(int i =0; i < numbers.size(); i++){
    testNum = numbers.get(i);
        if(testNum > lowerLimit && testNum < upperLimit){
        count++;
        }
}
System.out.println(count + " valid numbers have been entered!");

答案 2 :(得分:-1)

解决了它,a<=nums && nums>=b&lt; - 错误

nums<=b不是>=b