簡體   English   中英

為什么我的程序不打印countOfX值?

[英]why won't my program print the countOfX values?

感謝您在最后幾個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;
    }

}

}

為什么要在while循環中創建FizzBu​​zz的新實例? 只需在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();
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM