循环没有结束。我如何摆脱循环?

时间:2016-10-11 08:13:33

标签: c++

我试图从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++;
}

5 个答案:

答案 0 :(得分:4)

在增加count < 5时检查counterForChecker

将while条件设置为

while (counterForChecker < 5)

增加计数器

counter++; // counterForChecker++;

答案 1 :(得分:1)

(假设counter++;实际上说count++; ...)

如果xk为肯定,x % k0k - 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)

使用调试器并逐步执行代码,并在执行此操作时查看变量的值。您将了解有关一切如何运作的更多信息。