为什么我的程序不打印 countOfX 值

本文关键字:countOfX 打印 我的 程序 为什么 | 更新日期: 2023-09-27 18:37:10

感谢您在最后几个Q中的所有帮助!我想我只剩下一个问题了。由于某种原因,它不会打印 countOfX 变量的值?据我所知,它应该可以工作,所以显然我缺少一些东西!

希望有人至少能指出我正确的方向。任何帮助将不胜感激。

using System
namespace Part1Skeleton
{
class FizzBuzz
{
    int countOfFizz;
    int countOfBuzz;
    int countOfFizzBuzz;
    int countOfPrime;
    public static void Main()
    {
        int input = 1;
        //string enter;
        FizzBuzz fb = new FizzBuzz();
        fb.BeginTesting();
        while (input <= 20)
        {
            //Console.WriteLine("Please enter a number: ");
            //enter = Console.ReadLine();
            //input = int.Parse(enter);
            fb.BeginTesting();
            fb.IsFizz(input);
            fb.IsBuzz(input);
            fb.IsFizzBuzz(input);
            fb.IsPrime(input);
            input++;
        }
        fb.TotalFizz();
        fb.TotalBuzz();
        fb.TotalFizzBuzz();
        fb.TotalPrime();
    }
    public bool IsFizz(int input)
    {
        if (input % 9 == 0 && input != 0)
        {
            Console.WriteLine("Fizz");
            countOfFizz++;
            return true;
        }
        return false;
    }
    public bool IsBuzz(int input)
    {
        if (input % 13 == 0 && input != 0)
        {
            Console.WriteLine("Buzz");
            countOfBuzz++;
            return true;
        }
        return false;
    }
    public bool IsFizzBuzz(int input)
    {
        if (input % 9 == 0 && input % 13 == 0 && input != 0)
        {
            Console.WriteLine("FizzBuzz");
            countOfFizzBuzz++;
            return true;
        }
        return false;
    }
    public bool IsPrime(int input)
    {
        if (input == 0 || input == 1)
        {
            Console.WriteLine(input);
            return false;
        }
        else if (input % 9 == 0 || input % 13 == 0)
        {
            return false;
        }
        else
        {
            for (int i = 2; i < input; i++)
            {
                if (input % i == 0 && i != input)
                {
                    Console.WriteLine(input);
                    return false;
                }
            }
        }
        Console.WriteLine("Prime");
        countOfPrime++;
        return true;
    }
    public void BeginTesting()
    {
        countOfFizz = 0;
        countOfBuzz = 0;
        countOfFizzBuzz = 0;
        countOfPrime = 0;
    }
    public int TotalFizz()
    {
        Console.WriteLine("Number of Fizz: ");
        Console.Write(countOfFizz);
        return countOfFizz;
    }
    public int TotalBuzz()
    {
        Console.WriteLine("Number of Buzz: ");
        Console.Write(countOfBuzz);
        return countOfBuzz;
    }
    public int TotalFizzBuzz()
    {
        Console.WriteLine("Number of FizzBuzz: ");
        Console.Write(countOfFizzBuzz);
        return countOfFizzBuzz;
    }
    public int TotalPrime()
    {
        Console.WriteLine("Number of Prime: ");
        Console.Write(countOfPrime);
        return countOfPrime;
    }
}

}

为什么我的程序不打印 countOfX 值

为什么要在 while 循环中创建 FizzBuzz 的新实例?只需在 while 循环开始之前创建一个实例,并在整个程序中使用它。

试试这个主代码

public static void Main()
    {
        int input = 1;
        //string enter;
       FizzBuzz fb = new FizzBuzz(); // create a single instance
       fb.BeginTesting(); // start testing
        while (input <= 20)
        {
            //Console.WriteLine("Please enter a number: ");
            //enter = Console.ReadLine();
            //input = int.Parse(enter);
            fb.IsFizz(input);
            fb.IsBuzz(input);
            fb.IsFizzBuzz(input);                
            fb.IsPrime(input);
            input++;
        }
        fb.TotalFizz();            
        fb.TotalBuzz();            
        fb.TotalFizzBuzz();            
        fb.TotalPrime();
    }