繁体   English   中英

刚开始学习c for循环

[英]just starting to learn c for loop

我应该做一个玩多次的骰子游戏。 我并不是真正在寻找答案,而是在寻找我做错了什么。 我希望for循环将int ia赋值为0,然后运行骰子掷骰,然后将i加1,直到i >50。预先感谢。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main(){
int rollDie1, rollDie2, keyValue = 0, win = 0, lose = 0, reroll = 0, i;
srand(time(NULL));  // call this only once – seed the random generator

for (i = 0 ; i < 50 ; i++);
{
rollDie1 = rand() % 6 + 1;  // in the range of 1 - 6
rollDie2 = rand() % 6 + 1;  // in the range of 1 - 6
keyValue = rollDie1 + rollDie2;



    if ( keyValue == 7 || keyValue == 11 )
    {
    printf ("Player wins on the first roll \n");
    }


    if ( keyValue == 2 || keyValue == 3 || keyValue == 12 )
    {
    printf("Sorry, you lost on the first roll \n");
    }

    if (  keyValue == 4 || keyValue == 5 || keyValue == 6 || keyValue == 8 || keyValue == 9 || keyValue == 10 ) 
    {
    printf("Reroll! \n");
    }
}

system("pause");
}

有一个; 在不应该存在的for循环的末尾。

for (i = 0 ; i < 50 ; i++);

应该

for (i = 0 ; i < 50 ; i++)

否则,for循环中将没有任何内容, {}将仅执行一次,因为那是一条单独的语句。

循环末尾有一个分号:

for (i = 0 ; i < 50 ; i++);

因此它什么也不做50次。 您只需要删除分号,即可使括号{}实际封装应该在for循环中的代码行。

如果您在for循环之后没有左括号{ for循环之后的第一个完整语句将在每次迭代时执行。 分号是不执行任何操作的完整语句。

实际上,它将运行只要i <50,即从0到49

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM