Java 如何在用户输入之前运行while循环?

Java 如何在用户输入之前运行while循环?,java,while-loop,Java,While Loop,我试图为每个输入用户输入运行while循环,但不知道如果用户没有输入,如何停止。 如果用户不输入输入,我需要帮助停止while循环 代码: import java.util.*; 等级汽油{ 公共静态void main(字符串[]args){ 内部车辆计数器=0,汽油计数器=0; System.out.println(“输入车辆中按空格分隔的汽油加注量:”); 扫描仪s1=新的扫描仪(System.in); ArrayList数组=新的ArrayList(); while(true){ 如果(汽

我试图为每个输入用户输入运行while循环,但不知道如果用户没有输入,如何停止。 如果用户不输入输入,我需要帮助停止while循环

代码:

import java.util.*;
等级汽油{
公共静态void main(字符串[]args){
内部车辆计数器=0,汽油计数器=0;
System.out.println(“输入车辆中按空格分隔的汽油加注量:”);
扫描仪s1=新的扫描仪(System.in);
ArrayList数组=新的ArrayList();
while(true){

如果(汽油)计数器是这样,您可以尝试类似的方法。使用
缓冲读取程序
而不是
扫描仪
,来解析输入,因为您只需要一行输入。此外,
缓冲读取程序
扫描仪
更快

代码如下:

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Petrol {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int vehicle_counter=0,petrol_counter=0;
        System.out.println("Enter quantity of petrol to be filled in vehicles seperated by space:");
        String input = br.readLine();
        String[] values = input.split(" ");
        if(values.length>50){
            System.out.println("Vehicles exceeded 50");
        }else{
            for(int i=0;i<values.length;i++){
                int ip = Integer.parseInt(values[i]);
                petrol_counter+=ip;
                vehicle_counter++;
                
                if(petrol_counter>200){
                    System.out.println("Petrol Quantity exceeded 200L");
                }
            }
        }
        
        System.out.println(petrol_counter+" Litres "+ " Vehicles "+vehicle_counter);

    }

}

导入java.io.BufferedReader;
导入java.io.InputStreamReader;
公营汽油{
公共静态void main(字符串[]args)引发异常{
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
内部车辆计数器=0,汽油计数器=0;
System.out.println(“输入车辆中按空格分隔的汽油加注量:”);
字符串输入=br.readLine();
字符串[]值=input.split(“”);
如果(值。长度>50){
系统输出打印项次(“车辆超过50”);
}否则{
对于(int i=0;i200){
系统输出打印项次(“汽油量超过200L”);
}
}
}
系统输出打印LN(汽油计数器+“升”+“车辆”+车辆计数器);
}
}

因此,您可以尝试类似的方法。使用
BufferedReader
而不是
Scanner
,来解析输入,因为您只需要一行输入。此外,
BufferedReader
Scanner
更快

代码如下:

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Petrol {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int vehicle_counter=0,petrol_counter=0;
        System.out.println("Enter quantity of petrol to be filled in vehicles seperated by space:");
        String input = br.readLine();
        String[] values = input.split(" ");
        if(values.length>50){
            System.out.println("Vehicles exceeded 50");
        }else{
            for(int i=0;i<values.length;i++){
                int ip = Integer.parseInt(values[i]);
                petrol_counter+=ip;
                vehicle_counter++;
                
                if(petrol_counter>200){
                    System.out.println("Petrol Quantity exceeded 200L");
                }
            }
        }
        
        System.out.println(petrol_counter+" Litres "+ " Vehicles "+vehicle_counter);

    }

}

导入java.io.BufferedReader;
导入java.io.InputStreamReader;
公营汽油{
公共静态void main(字符串[]args)引发异常{
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
内部车辆计数器=0,汽油计数器=0;
System.out.println(“输入车辆中按空格分隔的汽油加注量:”);
字符串输入=br.readLine();
字符串[]值=input.split(“”);
如果(值。长度>50){
系统输出打印项次(“车辆超过50”);
}否则{
对于(int i=0;i200){
系统输出打印项次(“汽油量超过200L”);
}
}
}
系统输出打印LN(汽油计数器+“升”+“车辆”+车辆计数器);
}
}

如果您想保留扫描仪,您还可以将输入作为char,并使用If语句,当您按下某个字符时,该语句将退出循环

import java.util.*;

public class petrol {
    public static void main(String[] args) {
        int vehicle_counter = 0, petrol_counter = 0;
        System.out.println("Enter quantity of petrol to be filled in vehicles seperated by space:");
        Scanner s1 = new Scanner(System.in);
        ArrayList<Integer> array = new ArrayList<Integer>();

    while (true) {
        if (petrol_counter <= 200 && array.size() < 50) {
            char input = s1.next().charAt(0); // use char instead

            if (input == 'q' || input == 'Q') { //if user enters q or Q
                System.out.println("Quantity Excedded then 200 Litres or no of Vehicles excedded then 50.");
                break;
            }

            petrol_counter = petrol_counter + input;
            vehicle_counter++;
            array.add((int) input); //Cast to int
        }
    }
    System.out.println("Hii");
}
import java.util.*;
公营汽油{
公共静态void main(字符串[]args){
内部车辆计数器=0,汽油计数器=0;
System.out.println(“输入车辆中按空格分隔的汽油加注量:”);
扫描仪s1=新的扫描仪(System.in);
ArrayList数组=新的ArrayList();
while(true){

if(汽油计数器如果您想保留扫描仪,您还可以将输入作为char,并使用if语句,当您按下某个字符时,该语句将退出循环

import java.util.*;

public class petrol {
    public static void main(String[] args) {
        int vehicle_counter = 0, petrol_counter = 0;
        System.out.println("Enter quantity of petrol to be filled in vehicles seperated by space:");
        Scanner s1 = new Scanner(System.in);
        ArrayList<Integer> array = new ArrayList<Integer>();

    while (true) {
        if (petrol_counter <= 200 && array.size() < 50) {
            char input = s1.next().charAt(0); // use char instead

            if (input == 'q' || input == 'Q') { //if user enters q or Q
                System.out.println("Quantity Excedded then 200 Litres or no of Vehicles excedded then 50.");
                break;
            }

            petrol_counter = petrol_counter + input;
            vehicle_counter++;
            array.add((int) input); //Cast to int
        }
    }
    System.out.println("Hii");
}
import java.util.*;
公营汽油{
公共静态void main(字符串[]args){
内部车辆计数器=0,汽油计数器=0;
System.out.println(“输入车辆中按空格分隔的汽油加注量:”);
扫描仪s1=新的扫描仪(System.in);
ArrayList数组=新的ArrayList();
while(true){

如果(Maruthi在回答部分提到的汽油计数器,
BufferedReader
是更好的方法。但是如果您仍然想坚持使用
扫描仪,那么这不是更好的解决方案,只是为了给您另一种思路,您可能可以使用
while(s1.hasnetint())
而不是
while(true)
。现在,如果要停止输入值,请在按enter键之前键入任何非整数字符,如标点符号。@AniruddhaSardar
s1.hasNextInt()
有效。我添加了一个命令以添加句点(.)最后。正如Maruthi在回答部分中提到的,
BufferedReader
是更好的方法。但是如果您仍然想坚持使用
Scanner
,那么这不是更好的解决方案,只是为了给您另一种思路,您可能可以使用
while(s1.hasnetint())
而不是
while(true)
。现在,如果要停止输入值,请在按enter键之前键入任何非整数字符,如标点符号。@AniruddhaSardar
s1.hasNextInt()
有效。我添加了一个命令,在末尾添加句点(.)。