我是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]);
}
}
}
答案 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++;
}
}