我的程序包含几个选项,用于处理有关节目(名称,日期,时间)的用户输入数据。其中一个选项是显示每天的数据和节目总数(例如:如果星期二有2个节目,它将显示“星期二有2个节目”)。到目前为止,显示所有数据的输出正在工作,但是当显示特定日期的节目数时,它无法正常工作。我已经阅读了其他几个似乎每天都有一个switch语句的java程序,但这些程序也没有用。如果对我的代码有什么改变有任何建议,我会非常感激!谢谢
我已经编辑过上一段代码,但仍然没有用
注意:int dayCount放在enter数据方法中;在一天之后[i] = br.readLine();
这是我的班级:
import java.io.*;
public class Javavision {
static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
static String name[] = new String[1000];
static String day[] = new String[1000];
static String time[] = new String[1000];
static int dayCount = 0;
static int x, i, j, smallest;
static String temp;
这是我的代码:
public static void showShows() {
//output all shows
for (i = 0; i < x; i++) {
System.out.println("Name : " + name[i]);
System.out.println("Day : " + day[i]);
System.out.println("Time(2:30 am = 0230) : " + time[i] + "\r");
} **The problem is here**
for (i = 0; i < x; i++) {
if(i ==0) {
System.out.println("There is " + dayCount + " shows on " + day[i]);
}
}
}
这是输出:
Name : The Flash
Day : Sunday
Time(2:30 am = 0230) : 0125
Name : Suits
Day : Sunday
Time(2:30 am = 0230) : 0450
Name : Java Program
Day : Tuesday
Time(2:30 am = 0230) : 0330
There is 3 shows on Sunday
这是我增加dayCount的地方:
//Method addShow
public static void addShow() throws IOException {
//initialize counter
x = 0;
do {
//Update Array
System.out.println("Enter Name of Show: ");
name[x] = in.readLine();
System.out.println("Enter Day of Show: ");
day[x] = in.readLine();
dayCount++;
System.out.println("Enter Time of Show (ex: 2:30am = 0230) : ");
time[x] = in.readLine();
//Increase counter
x++;
//Ask if the user wants to stop
System.out.println("\nTo continue press Enter ");
System.out.println("To Quit, type in 'quit': ");
}
while((in.readLine().compareTo("quit"))!=0);
//Method addShow()
}
答案 0 :(得分:0)
在您的循环中打印您拥有的总显示:
for (i = 0; i < x; i++) {
if(i ==0) {
System.out.println("There is " + dayCount + " shows on " + day[i]);
}
}
if(i == 0)
使得println仅在循环的第一次迭代中执行。取出if语句并具有:
for (i = 0; i < x; i++) {
System.out.println("There is " + dayCount + " shows on " + day[i]);
}
这应该打印出剩余的日子
此外,您只有一个dayCount
变量可用于所有日期。因此,无论节目在哪一天开始,您都会增加dayCount
。 (如果你在不同的日子有三个节目,你每次都会增加dayCount
,这样就表明你打印出来的每一天都有三个节目。)如果你想为每个节目分别设置dayCount
个变量那天,我建议使用Hashmap
。
(使用日期作为键,dayCount
作为值)
此外,您可以查看enums
以供一周中的某些日子使用。