我试图从1到5生成并打印5个数字,但不是按顺序。我使用自编功能,出现之前'这将检查该号码是否已经出现过。
该功能出现之前将返回' 0'如果之前没有出现这个号码,那么' 1'如果该功能以前出现过。
目前,即使返回0,do-while循环也不会退出循环。该计划永远不会结束。关于我能做什么的任何建议?
编辑 - downvotes肯定会很快。我添加了计数器++,但它仍然无效。也许有人可以就内循环提出建议吗?
let amount = Int(usdamount.text!)
let numberFormatter = NSNumberFormatter()
numberFormatter.currencyCode = "EUR"
numberFormatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
let newValue = numberFormatter.stringFromNumber(amount)!
print(newValue)
这是函数appearBefore(变量是全局变量):
while (count < 5) {
repeat = 1;
do {
randomNumber = rand() % 4 + 1;
cout << randomNumber;
repeat = appearBefore(randomNumber);
cout << " " << repeat << endl;
} while (repeat == 1);
//Add the number into an array of numbers that have appeared before
checker[counterForChecker] = randomNumber;
counterForChecker++;
counter++;
}
答案 0 :(得分:4)
在增加count < 5
时检查counterForChecker
。
将while条件设置为
while (counterForChecker < 5)
或增加计数器
counter++; // counterForChecker++;
答案 1 :(得分:1)
(假设counter++;
实际上说count++;
...)
如果x
和k
为肯定,x % k
是0
和k - 1
之间的数字。
因此,您有四种可供选择的值(1,2,3,4),并且在您找到五个唯一值之前,您需要循环播放。
那永远不会结束。
要生成1到5之间的数字,请使用rand() % 5 + 1;
答案 2 :(得分:0)
您需要更改变量计数。现在没有这样做,所以由于值没有改变,循环不会结束。
答案 3 :(得分:0)
循环在glReadPixels
时运行,您永远不会增加plots <- lapply(1:nrow(Tra_decon), function(i){
Tra_decon_melt <- melt(Tra_decon[i,], id = "Gene")
ggplot(Tra_decon_melt, aes(variable, log10(value), group=factor(Gene))) +
theme(legend.title=element_blank()) +
ylab("XXX") +
xlab("XXX") +
geom_line(aes(color=factor(Gene)), size = 1.2) +
ggtitle("XXXX") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
})
pdf("Test_plot.pdf", onefile = TRUE)
plots
dev.off()
。
您的意思是使用:
count < 5
如果没有,请添加:
count
在while循环结束时
答案 4 :(得分:0)
使用调试器并逐步执行代码,并在执行此操作时查看变量的值。您将了解有关一切如何运作的更多信息。