在第10次输入后停止用户输入输入

时间:2015-11-25 21:55:06

标签: java

我是java的新手,我想知道如何阻止用户在10日之后输入输入。 (输入以空格分隔)

示例输出将是:

  

请输入10摄氏度的温度:30 12 20.5 ..

     

摄氏温度:30.0 12.0 20.5 ......

     

华氏温度:86.0 53.6 68.9 ......

这是我的代码:

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

        double [] a = new double [10];
        Scanner sc=new Scanner(System.in);

        System.out.print("Please type 10 temperatures in Celsius: ");
        for(int j=0; j<10; j++)
            a[j] = sc.nextDouble();

        System.out.print("Temperatures in Celsius:  ");
        for (int i=0;i<a.length;i++)
            System.out.print(a[i] + " ");

        System.out.print("\nTemperatures in Fahrenheit:  ");
        for (int i = 0; i < a.length; i++) 
            a[i] = a[i]*1.8+32;

            for (int i = 0; i < a.length; i++) {
               System.out.printf("%.1f ", a[i]);
            }

    }
}

3 个答案:

答案 0 :(得分:4)

这是不可能的,因为输入是从终端/ shell提供的,并且该终端通常按行读取输入。你必须做更多的低级编码来处理这样的场景。

如果用户输入10个以上的值并让他再次输入错误,则输出错误。

答案 1 :(得分:2)

丹尼尔是正确的,你当前的设置不太可能。如果你对控制台看起来有点不同,你可以做到这一点。这需要更多的“Enter”按下,并将每个temp移动到它自己的行。

  

输入10个临时符:

     

输入1:[此处输入用户]

     

输入2:[此处输入用户]

     

等等

System.out.println("Enter 10 temps");
for(int i = 1; i <= 10; i++){
    System.out.print("Enter " + i + ":");
    a[i-1] = scanner.nextDouble();
}

答案 2 :(得分:0)

并且你可以做一些像这样的事情,每个人都会在摄氏温度和华氏温度下打印10倍的数字

 public static void main(String args[]) {

    int counter = 0;
    double[] a = new double[10];
    Scanner sc = new Scanner(System.in);

    System.out.print("Please type temperatures in Celsius: ");

    while(counter < 10){
        a[counter] = sc.nextDouble();

    System.out.println("Temperatures in Celsius:  " + a[counter]);

    double tF = a[counter]*1.8 + 32;
    System.out.println("Temperatures in Fahrenheit:  " + tF);

    counter++;
    }
}