C# 为什么totalTokens变量在循环结束时得到错误的输出?

C# 为什么totalTokens变量在循环结束时得到错误的输出?,c#,function,variables,C#,Function,Variables,为什么totalTokens变量在循环结束时得到错误的输出?如果我对每个猜测下注相同的金额,它会给出正确的输出,但是如果用户对每个猜测下注不同的金额,它会提供错误的输出 int returnValue = random.Next(1, 100); string input; int guess = 0; int count = 0; int tokens = 1000; int bet = 0; int totalTokens; int betResult = 0; int countB = 0

为什么totalTokens变量在循环结束时得到错误的输出?如果我对每个猜测下注相同的金额,它会给出正确的输出,但是如果用户对每个猜测下注不同的金额,它会提供错误的输出

int returnValue = random.Next(1, 100);
string input;
int guess = 0;
int count = 0;
int tokens = 1000;
int bet = 0;
int totalTokens;
int betResult = 0;
int countB = 0;
int victory = 50;           

Console.WriteLine("What is your bet?");
bet = Convert.ToInt32(Console.ReadLine());

if (guess >= 1 && guess <= 100)
{
    if (guess > returnValue)
    {
        Console.Beep(100,2000);
        Console.WriteLine("Guess Again! Your guess is too HIGH");
        betResult = - bet;
        countB += 1;
        count += 1;                 
    }
    if (guess < returnValue)
    {                        
        Console.Beep(300,2000);
        Console.WriteLine("Guess Again! Your guess is too LOW");
        betResult = -bet;
        countB += 1;
        count += 1;                     
    }
    if (guess == returnValue)
    {
        totalTokens = tokens + (betResult * countB) + victory;
        Console.Beep(50,2000);
        Console.Beep(60,2000);
        Console.Beep(70,2000);
        Console.WriteLine("You got it RIGHT!!!!!!");
        count += 1;
        Console.WriteLine("Your guess of " +returnValue+ " was right.");
        Console.WriteLine("took you " +count+ " guesses to win the game.");
        Console.WriteLine("You won {0} tokens",victory);
        Console.WriteLine("Your total tokens is {0}", totalTokens);
    }                   
}

while (guess != returnValue)
{
    Thread.Sleep(500000);
    Console.Clear();
}
int returnValue=random.Next(1100);
字符串输入;
int guess=0;
整数计数=0;
整数标记=1000;
int-bet=0;
整数totalTokens;
int-betResult=0;
int countB=0;
int victory=50;
WriteLine(“你赌什么?”);
bet=Convert.ToInt32(Console.ReadLine());
如果(猜测>=1&&guess返回值)
{
控制台。嘟嘟声(1002000);
Console.WriteLine(“再猜一次!你的猜测太高了”);
betResult=-bet;
countB+=1;
计数+=1;
}
if(猜测<返回值)
{                        
控制台.哔哔声(3002000);
Console.WriteLine(“再猜一次!你的猜测太低”);
betResult=-bet;
countB+=1;
计数+=1;
}
如果(猜测==返回值)
{
totalTokens=tokens+(betResult*countB)+胜利;
控制台。哔哔声(502000);
控制台。哔哔声(602000);
控制台。哔哔声(702000);
Console.WriteLine(“你做对了!!!!!!!”;
计数+=1;
WriteLine(“您对“+returnValue+”的猜测是正确的。”);
WriteLine(“带你“+计数+”猜来赢得游戏。”);
WriteLine(“您赢得了{0}个代币”,胜利);
WriteLine(“您的总令牌数为{0}”,totalTokens);
}                   
}
while(猜测!=返回值)
{
睡眠(50万);
Console.Clear();
}

此行实际指定betResult作为最后一次下注:

betResult = -bet;
你应该写:

betResult -= bet;

random
的范围是什么?您在哪里设置guess的值?如果您没有提供再现问题的准确代码,您的问题可能会因为缺少
totalTokens=tokens+(betResult*countB)+胜利而被关闭您仅使用上一次下注的结果乘以下注次数。很明显,如果每次下注的金额不同,这是行不通的范围是1-100。。。。这是在单独的代码中定义的,我没有在这里复制,因为我只是对末尾的totalTokens变量有问题,然后是
totalTokens=tokens+(betResult*countB)+胜利行也应该是固定的