把for loop改成foreach且把計算邏輯移到fuction方便閱讀

This commit is contained in:
liaolizhen 2020-08-13 16:20:08 +08:00
parent 2f629ecc0e
commit bfcbd1c96f
2 changed files with 55 additions and 50 deletions

View File

@ -8,54 +8,59 @@ class GildedRose {
} }
public void updateQuality() { public void updateQuality() {
for (int i = 0; i < items.length; i++) { for (Item item : items) {
if (items[i].name.equals("Aged Brie") || items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { updateItem(item);
if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
if (items[i].sellIn < 11) {
if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
} }
} }
if (items[i].sellIn < 6) { private void updateItem(Item item) {
if (items[i].quality < 50) { if (item.name.equals("Aged Brie")
items[i].quality = items[i].quality + 1; || item.name.equals("Backstage passes to a TAFKAL80ETC concert")) {
if (item.quality < 50) {
item.quality = item.quality + 1;
if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) {
if (item.sellIn < 11) {
if (item.quality < 50) {
item.quality = item.quality + 1;
}
}
if (item.sellIn < 6) {
if (item.quality < 50) {
item.quality = item.quality + 1;
} }
} }
} }
} }
} else { } else {
if (items[i].quality > 0) { if (item.quality > 0) {
if (items[i].name.equals("Sulfuras, Hand of Ragnaros")) { if (item.name.equals("Sulfuras, Hand of Ragnaros")) {
} else { } else {
items[i].quality = items[i].quality - 1; item.quality = item.quality - 1;
} }
} }
} }
if (items[i].name.equals("Sulfuras, Hand of Ragnaros")) { if (item.name.equals("Sulfuras, Hand of Ragnaros")) {
} else { } else {
items[i].sellIn = items[i].sellIn - 1; item.sellIn = item.sellIn - 1;
} }
if (items[i].sellIn < 0) { if (item.sellIn < 0) {
if (items[i].name.equals("Aged Brie")) { if (item.name.equals("Aged Brie")) {
if (items[i].quality < 50) { if (item.quality < 50) {
items[i].quality = items[i].quality + 1; item.quality = item.quality + 1;
} }
} else { } else {
if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) {
items[i].quality = items[i].quality - items[i].quality; item.quality = item.quality - item.quality;
} else { } else {
if (items[i].quality > 0) { if (item.quality > 0) {
if (items[i].name.equals("Sulfuras, Hand of Ragnaros")) { if (item.name.equals("Sulfuras, Hand of Ragnaros")) {
continue; return;
}
items[i].quality = items[i].quality - 1;
} }
item.quality = item.quality - 1;
} }
} }
} }

View File

@ -11,7 +11,7 @@ class GildedRoseTest {
Item[] items = new Item[] { new Item("foo", 0, 0) }; Item[] items = new Item[] { new Item("foo", 0, 0) };
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals("fixme", app.items[0].name); assertEquals("foo", app.items[0].name);
} }
// copy-paste from https://gist.github.com/adelatorrefoss/ebc658b3e0054913dced80c8fe384de0 // copy-paste from https://gist.github.com/adelatorrefoss/ebc658b3e0054913dced80c8fe384de0