java 用户输入需要无数组打印
java user input need printing without array
大家好,我正在尝试让用户输入一遍又一遍地打印。它只打印我需要在没有数组的情况下执行此操作的最后一个用户输入。我尝试过循环,但我认为我的知识有限,因为我对 java 还很陌生,如果有人能提供帮助那就太棒了
import java.util.Scanner;
public class test{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Scanner sc = new Scanner(System.in);
String selection;
String malesName = null;
double malesAge = 0;
String femalesName = null;
double femalesAge = 0;
do
{
System.out.println("Enter part Guests");
System.out.println("------------------------------------------------");
System.out.println("\n");
System.out.println("A - Male guest has arrived");
System.out.println("B - Female Guest has arrived");
System.out.println("X - There are no more guests");
System.out.println("\n");
System.out.println("Enter your selection:");
selection = sc.nextLine();
if (selection.length() !=1)
{
System.out.println("Response must be a single character!");
}
else
{
switch (selection)
{
case "A":
case "a":
System.out.print("Enter males name:");
malesName = input.nextLine();
System.out.print("Males ages:");
malesAge = input.nextDouble();
String input4 = input.nextLine();
break;
case "B":
case "b":
System.out.print("Enter females name:");
femalesName = input.nextLine();
String input5 = input.nextLine();
System.out.print("Females age:");
femalesAge = input.nextDouble();
String input6 = input.nextLine();
break;
case "X":
case "x":
System.out.println("Time to party...");
break;
default:
System.out.println("Error - invalid selection!");
}
}
} while (selection.equals("X") == false);
String maleTotal =" - " + malesName + "(" + malesAge + ")";
String femaleTotal = " - " + femalesName + "(" + femalesAge + ")" ;
System.out.println("Male details:");
System.out.print("\n");
System.out.println( maleTotal );
System.out.println("Female details:");
System.out.print("\n");
System.out.print( femaleTotal );
/*
* it should be printing
*
* Male details:
* -dan(22)
* -sam(23)
* Female details:
* -samantha(32)
* -julie(25)
*
*
*but its only printing the last user input
*/
}
}
问题是您只计算一次总数,因为您在循环结束后有这些语句。您应该在循环内进行连接,然后在循环开始之前声明变量,然后打印它们。
String maleTotal = "";
String femaleTotal = "";
do {
// rest of the code
maleTotal += (" - " + malesName + "(" + malesAge + ")\n");
femaleTotal += (" - " + femalesName + "(" + femalesAge + ")\n");
} while (!selection.equalsIgnoreCase("X"));
我还建议改用 StringBuilder
s。
大家好,我正在尝试让用户输入一遍又一遍地打印。它只打印我需要在没有数组的情况下执行此操作的最后一个用户输入。我尝试过循环,但我认为我的知识有限,因为我对 java 还很陌生,如果有人能提供帮助那就太棒了
import java.util.Scanner;
public class test{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Scanner sc = new Scanner(System.in);
String selection;
String malesName = null;
double malesAge = 0;
String femalesName = null;
double femalesAge = 0;
do
{
System.out.println("Enter part Guests");
System.out.println("------------------------------------------------");
System.out.println("\n");
System.out.println("A - Male guest has arrived");
System.out.println("B - Female Guest has arrived");
System.out.println("X - There are no more guests");
System.out.println("\n");
System.out.println("Enter your selection:");
selection = sc.nextLine();
if (selection.length() !=1)
{
System.out.println("Response must be a single character!");
}
else
{
switch (selection)
{
case "A":
case "a":
System.out.print("Enter males name:");
malesName = input.nextLine();
System.out.print("Males ages:");
malesAge = input.nextDouble();
String input4 = input.nextLine();
break;
case "B":
case "b":
System.out.print("Enter females name:");
femalesName = input.nextLine();
String input5 = input.nextLine();
System.out.print("Females age:");
femalesAge = input.nextDouble();
String input6 = input.nextLine();
break;
case "X":
case "x":
System.out.println("Time to party...");
break;
default:
System.out.println("Error - invalid selection!");
}
}
} while (selection.equals("X") == false);
String maleTotal =" - " + malesName + "(" + malesAge + ")";
String femaleTotal = " - " + femalesName + "(" + femalesAge + ")" ;
System.out.println("Male details:");
System.out.print("\n");
System.out.println( maleTotal );
System.out.println("Female details:");
System.out.print("\n");
System.out.print( femaleTotal );
/*
* it should be printing
*
* Male details:
* -dan(22)
* -sam(23)
* Female details:
* -samantha(32)
* -julie(25)
*
*
*but its only printing the last user input
*/
}
}
问题是您只计算一次总数,因为您在循环结束后有这些语句。您应该在循环内进行连接,然后在循环开始之前声明变量,然后打印它们。
String maleTotal = "";
String femaleTotal = "";
do {
// rest of the code
maleTotal += (" - " + malesName + "(" + malesAge + ")\n");
femaleTotal += (" - " + femalesName + "(" + femalesAge + ")\n");
} while (!selection.equalsIgnoreCase("X"));
我还建议改用 StringBuilder
s。