1. 就是红色圈出来这部分就是运行时的效果,应该怎么实现呢,想了for循环 for (int i = 0; i <carnum1 ; i++) {
Scanner input=new Scanner(System.in);
String temp =input.nextLine();
String a[]=temp.split(" ");
int num1=Integer.parseInt(a[0]);
int num2=Integer.parseInt(a[1]);
switch (num1){
case 1: System.out.println("奥迪");break;
case 2: System.out.println("马自达");break;
case 3: System.out.println("皮卡雪");break;
case 4: System.out.println("金龙");break;
case 5: System.out.println("松花江");break;
case 6: System.out.println("依维柯");break;}
但是输出以一次一次输出的,
/**
* 作者:WGS
* 微信:w1150111308
* Q Q:1150111308
* 邮箱:gosse0405@163.com
*/
public class Answer {
static Scanner sc = new Scanner(System.in);
static String[] cars = {"", "奥迪A4", "马自达6", "皮卡雪6", "金龙", "松花江", "依维柯"};
static int[] prices = {0, 500, 400, 450, 800, 400, 1000};
static int[] persons = {0, 4, 4, 4, 20, 0, 0};
static int[] tons = {0, 0, 0, 2, 0, 4, 20};
public static void main(String[] args) {
System.out.println("欢迎使用租车系统");
// 输入的数字
int whether = inputNum("您是否要租车:1是,0否");
switch (whether) {
case 1:
// 租车系统内容
content();
// 输入租车数量
int num = 0;
while (true) {
num = inputNum("请输入要租车的数量:");
if (num > 0 && num < cars.length) {
break;
} else {
System.out.println("您输入的内容不在系统范围,请重新输入!");
}
}
// 执行租车流程和账单结算
total(inputGroupStr("请输入您要租车的序号和天数:", num));
break;
case 0:
System.out.println("欢迎您下次使用本系统!");
break;
default:
System.out.println("输入错误的数字");
}
}
/**
* 租车主体内容
*/
public static void content() {
System.out.println("您可租车的类型及其节目表如下:");
for (int i = 1; i < cars.length; i++) {
System.out.println(
"序号-" + i + "\t"
+ "汽车名称:" + cars[i] + "\t"
+ "租金:" + prices[i] + "/天 \t"
+ "容量:" + (persons[i] != 0 ? ("最多载人" + persons[i] + "人") : "")
+ (persons[i] != 0 && tons[i] != 0 ? "," : "")
+ (tons[i] != 0 ? ("最多载货" + tons[i] + "吨") : "")
);
}
System.out.println();
}
/**
* 账单计算
*/
public static void total(int[][] orderDays) {
System.out.println("您的账单如下:");
int total = 0;
for (int i = 0; i < orderDays.length; i++) {
int order = orderDays[i][0];
int days = orderDays[i][0];
total += prices[order] * days;
System.out.println(cars[order] + " \t" + days + "天");
}
System.out.println("总价格:" + total);
}
/**
* 输入单个数字内容
* @return
*/
public static int inputNum(String info) {
System.out.println(info);
String s = sc.nextLine();
int num = -1;
try {
num = Integer.parseInt(s);
} catch (NumberFormatException e) {
return num;
}
return num;
}
/**
* 输入三组数字内容
* @return
*/
public static int[][] inputGroupStr(String infoGroup, int num) {
int[][] nums = new int[num][2];
System.out.println(infoGroup);
for (int i = 0; i< num; i++) {
while (true) {
try {
String[] s = sc.nextLine().split(" ");
int order = Integer.parseInt(s[0]);
int days = Integer.parseInt(s[1]);
if (order >= cars.length || order <= 0 || days >= cars.length && days <= 0) {
System.out.println("您输入的内容不在系统范围,请重新输入!");
} else {
nums[i][0] = order;
nums[i][1] = days;
break;
}
} catch (Exception e) {
System.out.println("您输入的内容不规范,请重新输入!");
System.out.println("【示例】:2 3");
}
}
}
return nums;
}
}
https://blog.csdn.net/qq_34417433/article/details/104808640
当然是一次一次输出了,你这循环体中,每次输入了之后都用switch判断输出了,肯定是每次都输出了。代码稍微改一下就行,你在for循环外部定义一个String数组,长度为carnum1,然后在switch的case里不要直接输出,而是把结果拼成你想要的字符串,然后放到数组中,在for循环执行完之后再遍历一下这个数组,打印就好了