Нужна помощь в симуляции программы, которая имитирует воровство телевизоров - PullRequest
0 голосов
/ 19 февраля 2012

Взял учебник Java сейчас.На самом деле пытаюсь выучить язык снова.

В этой книге есть очень интересный фрагмент кода, который включает в себя класс под названием «Дом», который имитирует вора, крадущего телевизоры у людей (которые также являются классами).

Единственная проблема в том, что я не могу понять, как изменить мой массив, чтобы изменить количество Домов, которые собирает вор.Это сложно объяснить, но вот мой код прямо сейчас.Я полностью потерян в данный момент.Я действительно не могу понять, как работают массивы, которые чертовски беспокоят меня.Любая помощь будет оценена.

import java.util.Scanner;
class House {
  public int nHDTVs;
  public House pFriend;
  public House(int nParameter, House friendParameter)
  {
    nHDTVs = nParameter;
    pFriend = friendParameter;
  }
  public void steal(House thiefsHouse, House firstVictim)
  {
    int nTVsStolen = 0;
    int victimNumber = 0;
    for(int i =0; i<victimNumber; i++)
    {
     nTVsStolen = nTVsStolen + array[i];
    }
    //nTVsStolen = nTVsStolen + 
    /*for(i=1;i>10;i++)
    {
      //stuff
    }*/
    //thiefsHouse nHDTVs = n


    System.out.println("Victim " + (victimNumber+1) + " " + "lives at " + firstVictim);
    System.out.println("Victim " + (victimNumber+2) + " " + "lives at " + firstVictim.pFriend);
 System.out.println("I've just stolen " + 0 + " TVs from the House at " + null);

    thiefsHouse.nHDTVs = thiefsHouse.nHDTVs + nTVsStolen;
  }
  public static void main(String dfgasdfwe[]) {
    int nHouses;
    Scanner keyboard = new Scanner(System.in);
    System.out.println("How many houses should the thief steal from?");
    nHouses = keyboard.nextInt();
    House array[] = new House[nHouses];
    array[nHouses - 1] = new House(3, null);
    for(int i = nHouses - 2; i>=0; i--)
    {
      array[i] = new House( i , array[i+1]);
    }
    House thiefsHouse = array[0];
    //pFriend nHDTVs[victimNumber] = 0;
    thiefsHouse.steal(thiefsHouse, thiefsHouse.pFriend);
    System.out.println("I now have " + thiefsHouse.nHDTVs + " TV sets. HA HA.");

  }
}

1 Ответ

0 голосов
/ 19 февраля 2012

Ваша проблема в основном здесь

int nTVsStolen = 0;
int victimNumber = 0;
for(int i =0; i<victimNumber; i++)
{
 nTVsStolen = nTVsStolen + array[i];
}

Первая проблема заключается в том, что код не будет компилироваться, поскольку array определен в main и не виден в этой области. Следующий массив имеет тип House и поэтому не может работать с оператором +.

victimNumber всегда равно нулю, поэтому цикл никогда не выполняется.

Может быть, заменить его на

while(nHDTVs > 0)
{
 nHDTVs--;
 nTVsStolen++;
 System.out.println("I stole a TV from this Victim: " + toString());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...