查找数组

时间:2015-05-26 07:59:09

标签: java arrays loops multidimensional-array

大家好我正在学习Java,而且我正在努力制作一个你也可以使用书籍汽车旅馆房间的程序。我试图创建一种方法来搜索客人需要的天数,然后检查免费的天数和单位。我正在使用数组数组的2D数组。

    public void doSearch() {
    this.redisplay();
    int daysWanted = UI.askInt("Number of days required"); 
    int days = 0;
    for(int i = 0; i < NUM_UNITS; i++){
        for(int j = 0; j < NUM_DAYS; j++){
            if(bookings[i][j] == null){
                days++;
                if(daysWanted >= days && this.bookings[i] == this.bookings[i]){
                    this.displayCell (i, j, Color.red);
                }
            }
        }
    }
}

Image of motel program

这是程序目前的样子,我上面展示的是我想要的方法。我的问题是,当我键入多少天时,它检查可用单元是否在这么多天是免费的,但我希望它是连续的。我怎么会这样呢?任何帮助表示赞赏,谢谢:)

2 个答案:

答案 0 :(得分:1)

改变这个:

days = 0;
int[] daysWeWant = new int[daysWanted];
for(int j = 0; j < NUM_DAYS; j++){
    if(bookings[i][j] == null){
       daysWeWant[days] = j;
       days++;
       if(daysWanted == days){
           break;
       }
    }
    else{
        days = 0;
        int[] daysWeWant = new int[daysWanted];
    }
}
if(days== daysWanted ){
    for(int j = 0 ; j< daysWanted; j++){
        int day = daysWeWant [j];
        this.displayCell (i, day , Color.red);
    }
}

这样的事情:

                    <tbody>
                         <?php foreach($booklist as $book)

                         { ?>
                              <tr>
                                   <td><?php echo $book['bookid']; ?></td>
                                   <td><?php echo $book['bookname']; ?></td>
                                   <td><?php echo $book['author']; ?></td>
                                   <td><?php echo $book['price']; ?></td>
                               <td>
<a href="<?php echo site_url('home/edit/' . $book['bookid']); ?>" class="btn btn-warning btn-xs"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>        

如果你这样做,如果有一天不可用并且继续再次搜索,那么它会为零天。

答案 1 :(得分:0)

我怀疑Lrrr是在正确的道路上 - 您需要为您正在搜索的每个单元重置days计数器。可能你可以改变:

int days = 0;
for(int i = 0; i < NUM_UNITS; i++){
    for(int j = 0; j < NUM_DAYS; j++){

for(int i = 0; i < NUM_UNITS; i++){
    int days = 0;
    for(int j = 0; j < NUM_DAYS; j++){

但是如果没有样本数据,检查某些内容会有点工作。

您可能会发现编写一些单元测试可以帮助您解决这个问题。