在Java中的”ズンドコキヨシ”
前提 tí)
我想借用一下最近很熱門的「ズンドコキヨシ」話題。
原始內容在這裡↓↓↓
由于Java课程中考试问题要求创建和描述自制函数,所以我创建了一个函数,它会以随机方式持续输出”ズン”或”ドコ”,当输出数组为”ズン”,”ズン”,”ズン”,”ズン”,”ドコ”时,函数会输出”キ・ヨ・シ!”然后结束。我因为这个函数得满分并且通过了考试。
如下所示,只需要一种选择:
来源
我們試著創建一個無限流,在順序「嘟」、「嘟」、「嘟」、「嘟」、「咚」中不斷地返回值。
public class ZunDokoKiyoshi {
enum ズンドコ {
ズン, ドコ;
}
public static void main(String... args) {
StreamSupport.stream(Spliterators.spliteratorUnknownSize(new ZunDokoIterator(), Spliterator.ORDERED), false)
.forEach(System.out::println);
System.out.println("キ・ヨ・シ!");
}
static class ZunDokoIterator implements Iterator<ズンドコ> {
Random rnd = new Random();
int zc = 0;
boolean end = false;
@Override
public boolean hasNext() {
return !end;
}
@Override
public ズンドコ next() {
ズンドコ e = rnd.nextInt(10) % 2 == 0 ? ズンドコ.ズン : ズンドコ.ドコ;
switch (e) {
case ズン:
zc++;
end = false;
break;
case ドコ:
if (zc >= 4) {
end = true;
} else {
zc = 0;
end = false;
}
break;
default:
throw new IllegalArgumentException(e.toString());
}
return e;
}
}
}