我是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:我如何打破循环以便获得输出? 谢谢!
答案 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