Skip to main content
Tweeted twitter.com/StackCodeReview/status/1095925774748655621
Rollback to Revision 5
Source Link

20190212 REVISED CODE (after Roland's post):

using System;
using System.Threading;

namespace Quiz
{
    class Program
    {
        static void Main(string[] args)
        {
            //start the quiz by telling the student the details of the structure of the quiz and the subject being tested
            Console.WriteLine("Kenneth Myers, ENGR115, Assignment: Checkpoint 4 & 5");
            Console.WriteLine("You are about to take a 10 question quiz on Binary Number Systems.");
            Console.WriteLine("Each question will be displayed with either a True/False or Multiple-choice answer key. Select the correct answer by pressing the corresponding key.");
            Console.WriteLine("If you get the question wrong, you will be notified of the wrong answer and the next question will be displayed.");
            Console.WriteLine("Once all questions have been displayed once, questions answered incorrectly will be displayed in the original order; you may attempt the question again.");
            Console.WriteLine("After all missed questions have been displayed a second time and answered, the results of your quiz will be displayed, by category of question and number answered correctly, and the total number answered correctly.");
            Console.WriteLine(); 

            //create an array with all the questions and possible answers to display to the user
            var questions = new string[] { "Question 1: True or False – Binary numbers consist of a sequence of ones and zeros?",
               "Question 2: Multiple choice – Add the following binary numbers: 1011+0011. "
               +"Answers: 1) 1110, 2) 1022, 3) 1010, 4) 1032.",
               "Question 3: Multiple choice – Add the following binary numbers: 11011011+01100110. "
               +"Answers: 1) 11000001, 2) 11111111, 3) 12111121, 4) 101000001.",
               "Question 4: True or False – Binary numbers are base-10? ",
               "Question 5: Multiple choice – Subtract the following binary numbers: 1110-0101. "
               +"Answers: 1) 1010, 2) 1001, 3) 1000, 4) 0100.",
               "Question 6: Multiple choice – Subtract the following binary numbers: 10010011-01101100. "
               +"Answers: 1) 01101111, 2) 00010111, 3) 00100111, 4) 11011101.",
               "Question 7: True or False – Binary numbers are base-2? ",
               "Question 8: Multiple choice – the binary number 1011 equates to what base-10 number? "
               +"Answers: 1) 11, 2) 22, 3) 14, 4) 7.",
               "Question 9: Multiple choice – what is the binary equivalent of the base-10 number 127? "
               +"Answers: 1) 01101111, 2) 11111111, 3) 10111011, 4) 11111110.",
               "Question 10: True or False: an 8-bit binary number can have a maximum value of 128 in base-10? "};

            //creating array of correct answers, input variables for each question to accept user input in an array, and question status array to track if the question was answered correctly the first time
            var questionAnswer = new string[] { "t", "1", "4", "f", "2", "3", "t", "1", "2", "f" };
            var questionInput = new string[10];
            var questionStatus = new string[] { "n", "n", "n", "n", "n", "n", "n", "n", "n", "n" };
            //define the question types (tf or mc) in an array, set the question iteration globally, and set the question index globally
            var questionType = new string[] { "tf", "mc", "mc", "tf", "mc", "mc", "tf", "mc", "mc", "tf" };
            var questionIteration = 0;
            var questionIndex = 0;
            //defines and sets the true/false counter and multiple choice counters to zero
            var trueFalseCount = 0; var multipleChoiceCount = 0; 

            //start the quiz - display each question, in order starting at question 1, and accept the user input for that question, then display the user input and move to the next question
                for (questionIteration = 1; questionIteration < 3; questionIteration++)//set up a for loop to run 2 iterations of the questions
                {
                    questionIndex = 0;
                    if (questionIteration == 2)
                {
                    Console.WriteLine("Second attempt. Previously incorrectly answered questions will be displayed again. Good luck!");
                }
                    //foreach loop to handle each question and the answer input by the user, plus logic to test for invalid and correct/incorrect answers
                    foreach (string question in questions)
                    {
                        if (questionStatus[questionIndex] == "n")//first attempt at the question
                        {
                            Console.WriteLine(question); //displays the question, starting with question 1
                        if (questionType[questionIndex] == "tf")
                        {
                            Console.WriteLine("Press T or F and Enter to submit");
                        }
                        else if (questionType[questionIndex] == "mc")
                        {
                            Console.WriteLine("Select the number (1, 2, 3 or 4) of the correct answer and press Enter to submit");
                        }
                        if (questionType[questionIndex] == "tf")//logic for true/false questions
                            {
                                questionInput[questionIndex] = InvalidTrueFalseEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                questionInput[questionIndex] = CheckForCorrectAnswer();//checks for correct answer
                            }
                            else if (questionType[questionIndex] == "mc")//logic for multiple choice questions
                            {
                                questionInput[questionIndex] = InvalidMultipleChoiceEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                questionInput[questionIndex] = CheckForCorrectAnswer();//checks for correct answer
                            }
                        }
                        questionIndex++;//increment the question counter for the next iteration
                    }
                }

            Console.WriteLine("Test Complete!");//tells user the test is over
            Console.WriteLine("You answered " + trueFalseCount + " T/F questions correctly and " + multipleChoiceCount + " multiple choice questions correctly.");//tells user their performance
            Console.WriteLine("You missed " + (4 - trueFalseCount) + " T/F questions and " + (6 - multipleChoiceCount) + " multiple choice questions.");

            //this method will check multiple choice answers to ensure they are a number 1-4
            string InvalidMultipleChoiceEntry()
            {
                while (true)
                {
                    var answer = Console.ReadLine();
                    if (answer == "1" || answer == "2" || answer == "3" || answer == "4")
                    {
                        return answer;
                    }

                    Console.WriteLine("Invalid answer type (not 1-4), try again.");
                }
            }

            //this method will check true/false answers to ensure input was a "t" or an "f"
            string InvalidTrueFalseEntry()
            {
                while (true)
                {
                    var answer = Console.ReadLine();
                    if (answer == "t" || answer == "f")
                    {
                        return answer;
                    }

                    Console.WriteLine("Invalid answer type (not t or f), try again.");
                }
            }

            //this method will check the answer to see if it is correct or not, if the entry was valid for the questionType
            string CheckForCorrectAnswer()
            {
                var answer = questionInput[questionIndex];
                if (answer != questionAnswer[questionIndex])//tests for incorrect answer given from a valid input by question type
                {
                    Console.WriteLine("Your answer was: " + questionInput[questionIndex]); //displays the answer chosen by the user
                    Console.WriteLine("Sorry, wrong answer. :-(");
                    Console.WriteLine();
                    questionStatus[questionIndex] = "n";//make sure the question status reflects "n"
                    return answer;
                }
                else //it must be correct, since we've checked against invalid and incorrect answers!
                {
                    Console.WriteLine("Your answer was: " + questionInput[questionIndex]); //displays the answer chosen by the user
                    Console.WriteLine("Correct answer!");
                    questionStatus[questionIndex] = "y";
                    if (questionType[questionIndex] == "tf")
                    {
                        trueFalseCount++;//increment the true/false counter to total the number answered correctly
                    }
                    else
                    {
                        multipleChoiceCount++;//increment the multiple choice counter to total the number answered correctly
                    }
                    Console.WriteLine();
                    return answer; 
                }
            }
        }
    }
}

20190212 REVISED CODE (after Roland's post):

using System;
using System.Threading;

namespace Quiz
{
    class Program
    {
        static void Main(string[] args)
        {
            //start the quiz by telling the student the details of the structure of the quiz and the subject being tested
            Console.WriteLine("Kenneth Myers, ENGR115, Assignment: Checkpoint 4 & 5");
            Console.WriteLine("You are about to take a 10 question quiz on Binary Number Systems.");
            Console.WriteLine("Each question will be displayed with either a True/False or Multiple-choice answer key. Select the correct answer by pressing the corresponding key.");
            Console.WriteLine("If you get the question wrong, you will be notified of the wrong answer and the next question will be displayed.");
            Console.WriteLine("Once all questions have been displayed once, questions answered incorrectly will be displayed in the original order; you may attempt the question again.");
            Console.WriteLine("After all missed questions have been displayed a second time and answered, the results of your quiz will be displayed, by category of question and number answered correctly, and the total number answered correctly.");
            Console.WriteLine(); 

            //create an array with all the questions and possible answers to display to the user
            var questions = new string[] { "Question 1: True or False – Binary numbers consist of a sequence of ones and zeros?",
               "Question 2: Multiple choice – Add the following binary numbers: 1011+0011. "
               +"Answers: 1) 1110, 2) 1022, 3) 1010, 4) 1032.",
               "Question 3: Multiple choice – Add the following binary numbers: 11011011+01100110. "
               +"Answers: 1) 11000001, 2) 11111111, 3) 12111121, 4) 101000001.",
               "Question 4: True or False – Binary numbers are base-10? ",
               "Question 5: Multiple choice – Subtract the following binary numbers: 1110-0101. "
               +"Answers: 1) 1010, 2) 1001, 3) 1000, 4) 0100.",
               "Question 6: Multiple choice – Subtract the following binary numbers: 10010011-01101100. "
               +"Answers: 1) 01101111, 2) 00010111, 3) 00100111, 4) 11011101.",
               "Question 7: True or False – Binary numbers are base-2? ",
               "Question 8: Multiple choice – the binary number 1011 equates to what base-10 number? "
               +"Answers: 1) 11, 2) 22, 3) 14, 4) 7.",
               "Question 9: Multiple choice – what is the binary equivalent of the base-10 number 127? "
               +"Answers: 1) 01101111, 2) 11111111, 3) 10111011, 4) 11111110.",
               "Question 10: True or False: an 8-bit binary number can have a maximum value of 128 in base-10? "};

            //creating array of correct answers, input variables for each question to accept user input in an array, and question status array to track if the question was answered correctly the first time
            var questionAnswer = new string[] { "t", "1", "4", "f", "2", "3", "t", "1", "2", "f" };
            var questionInput = new string[10];
            var questionStatus = new string[] { "n", "n", "n", "n", "n", "n", "n", "n", "n", "n" };
            //define the question types (tf or mc) in an array, set the question iteration globally, and set the question index globally
            var questionType = new string[] { "tf", "mc", "mc", "tf", "mc", "mc", "tf", "mc", "mc", "tf" };
            var questionIteration = 0;
            var questionIndex = 0;
            //defines and sets the true/false counter and multiple choice counters to zero
            var trueFalseCount = 0; var multipleChoiceCount = 0; 

            //start the quiz - display each question, in order starting at question 1, and accept the user input for that question, then display the user input and move to the next question
                for (questionIteration = 1; questionIteration < 3; questionIteration++)//set up a for loop to run 2 iterations of the questions
                {
                    questionIndex = 0;
                    if (questionIteration == 2)
                {
                    Console.WriteLine("Second attempt. Previously incorrectly answered questions will be displayed again. Good luck!");
                }
                    //foreach loop to handle each question and the answer input by the user, plus logic to test for invalid and correct/incorrect answers
                    foreach (string question in questions)
                    {
                        if (questionStatus[questionIndex] == "n")//first attempt at the question
                        {
                            Console.WriteLine(question); //displays the question, starting with question 1
                        if (questionType[questionIndex] == "tf")
                        {
                            Console.WriteLine("Press T or F and Enter to submit");
                        }
                        else if (questionType[questionIndex] == "mc")
                        {
                            Console.WriteLine("Select the number (1, 2, 3 or 4) of the correct answer and press Enter to submit");
                        }
                        if (questionType[questionIndex] == "tf")//logic for true/false questions
                            {
                                questionInput[questionIndex] = InvalidTrueFalseEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                questionInput[questionIndex] = CheckForCorrectAnswer();//checks for correct answer
                            }
                            else if (questionType[questionIndex] == "mc")//logic for multiple choice questions
                            {
                                questionInput[questionIndex] = InvalidMultipleChoiceEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                questionInput[questionIndex] = CheckForCorrectAnswer();//checks for correct answer
                            }
                        }
                        questionIndex++;//increment the question counter for the next iteration
                    }
                }

            Console.WriteLine("Test Complete!");//tells user the test is over
            Console.WriteLine("You answered " + trueFalseCount + " T/F questions correctly and " + multipleChoiceCount + " multiple choice questions correctly.");//tells user their performance
            Console.WriteLine("You missed " + (4 - trueFalseCount) + " T/F questions and " + (6 - multipleChoiceCount) + " multiple choice questions.");

            //this method will check multiple choice answers to ensure they are a number 1-4
            string InvalidMultipleChoiceEntry()
            {
                while (true)
                {
                    var answer = Console.ReadLine();
                    if (answer == "1" || answer == "2" || answer == "3" || answer == "4")
                    {
                        return answer;
                    }

                    Console.WriteLine("Invalid answer type (not 1-4), try again.");
                }
            }

            //this method will check true/false answers to ensure input was a "t" or an "f"
            string InvalidTrueFalseEntry()
            {
                while (true)
                {
                    var answer = Console.ReadLine();
                    if (answer == "t" || answer == "f")
                    {
                        return answer;
                    }

                    Console.WriteLine("Invalid answer type (not t or f), try again.");
                }
            }

            //this method will check the answer to see if it is correct or not, if the entry was valid for the questionType
            string CheckForCorrectAnswer()
            {
                var answer = questionInput[questionIndex];
                if (answer != questionAnswer[questionIndex])//tests for incorrect answer given from a valid input by question type
                {
                    Console.WriteLine("Your answer was: " + questionInput[questionIndex]); //displays the answer chosen by the user
                    Console.WriteLine("Sorry, wrong answer. :-(");
                    Console.WriteLine();
                    questionStatus[questionIndex] = "n";//make sure the question status reflects "n"
                    return answer;
                }
                else //it must be correct, since we've checked against invalid and incorrect answers!
                {
                    Console.WriteLine("Your answer was: " + questionInput[questionIndex]); //displays the answer chosen by the user
                    Console.WriteLine("Correct answer!");
                    questionStatus[questionIndex] = "y";
                    if (questionType[questionIndex] == "tf")
                    {
                        trueFalseCount++;//increment the true/false counter to total the number answered correctly
                    }
                    else
                    {
                        multipleChoiceCount++;//increment the multiple choice counter to total the number answered correctly
                    }
                    Console.WriteLine();
                    return answer; 
                }
            }
        }
    }
}
Revised code after Roland made code change suggestions
Source Link
MX372
  • 41
  • 3

20190212 REVISED CODE (after Roland's post):

using System;
using System.Threading;

namespace Quiz
{
    class Program
    {
        static void Main(string[] args)
        {
            //start the quiz by telling the student the details of the structure of the quiz and the subject being tested
            Console.WriteLine("Kenneth Myers, ENGR115, Assignment: Checkpoint 4 & 5");
            Console.WriteLine("You are about to take a 10 question quiz on Binary Number Systems.");
            Console.WriteLine("Each question will be displayed with either a True/False or Multiple-choice answer key. Select the correct answer by pressing the corresponding key.");
            Console.WriteLine("If you get the question wrong, you will be notified of the wrong answer and the next question will be displayed.");
            Console.WriteLine("Once all questions have been displayed once, questions answered incorrectly will be displayed in the original order; you may attempt the question again.");
            Console.WriteLine("After all missed questions have been displayed a second time and answered, the results of your quiz will be displayed, by category of question and number answered correctly, and the total number answered correctly.");
            Console.WriteLine(); 

            //create an array with all the questions and possible answers to display to the user
            var questions = new string[] { "Question 1: True or False – Binary numbers consist of a sequence of ones and zeros?",
               "Question 2: Multiple choice – Add the following binary numbers: 1011+0011. "
               +"Answers: 1) 1110, 2) 1022, 3) 1010, 4) 1032.",
               "Question 3: Multiple choice – Add the following binary numbers: 11011011+01100110. "
               +"Answers: 1) 11000001, 2) 11111111, 3) 12111121, 4) 101000001.",
               "Question 4: True or False – Binary numbers are base-10? ",
               "Question 5: Multiple choice – Subtract the following binary numbers: 1110-0101. "
               +"Answers: 1) 1010, 2) 1001, 3) 1000, 4) 0100.",
               "Question 6: Multiple choice – Subtract the following binary numbers: 10010011-01101100. "
               +"Answers: 1) 01101111, 2) 00010111, 3) 00100111, 4) 11011101.",
               "Question 7: True or False – Binary numbers are base-2? ",
               "Question 8: Multiple choice – the binary number 1011 equates to what base-10 number? "
               +"Answers: 1) 11, 2) 22, 3) 14, 4) 7.",
               "Question 9: Multiple choice – what is the binary equivalent of the base-10 number 127? "
               +"Answers: 1) 01101111, 2) 11111111, 3) 10111011, 4) 11111110.",
               "Question 10: True or False: an 8-bit binary number can have a maximum value of 128 in base-10? "};

            //creating array of correct answers, input variables for each question to accept user input in an array, and question status array to track if the question was answered correctly the first time
            var questionAnswer = new string[] { "t", "1", "4", "f", "2", "3", "t", "1", "2", "f" };
            var questionInput = new string[10];
            var questionStatus = new string[] { "n", "n", "n", "n", "n", "n", "n", "n", "n", "n" };
            //define the question types (tf or mc) in an array, set the question iteration globally, and set the question index globally
            var questionType = new string[] { "tf", "mc", "mc", "tf", "mc", "mc", "tf", "mc", "mc", "tf" };
            var questionIteration = 0;
            var questionIndex = 0;
            //defines and sets the true/false counter and multiple choice counters to zero
            var trueFalseCount = 0; var multipleChoiceCount = 0; 

            //start the quiz - display each question, in order starting at question 1, and accept the user input for that question, then display the user input and move to the next question
                for (questionIteration = 1; questionIteration < 3; questionIteration++)//set up a for loop to run 2 iterations of the questions
                {
                    questionIndex = 0;
                    if (questionIteration == 2)
                {
                    Console.WriteLine("Second attempt. Previously incorrectly answered questions will be displayed again. Good luck!");
                }
                    //foreach loop to handle each question and the answer input by the user, plus logic to test for invalid and correct/incorrect answers
                    foreach (string question in questions)
                    {
                        if (questionStatus[questionIndex] == "n")//first attempt at the question
                        {
                            Console.WriteLine(question); //displays the question, starting with question 1
                        if (questionType[questionIndex] == "tf")
                        {
                            Console.WriteLine("Press T or F and Enter to submit");
                        }
                        else if (questionType[questionIndex] == "mc")
                        {
                            Console.WriteLine("Select the number (1, 2, 3 or 4) of the correct answer and press Enter to submit");
                        }
                        if (questionType[questionIndex] == "tf")//logic for true/false questions
                            {
                                questionInput[questionIndex] = InvalidTrueFalseEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                questionInput[questionIndex] = CheckForCorrectAnswer();//checks for correct answer
                            }
                            else if (questionType[questionIndex] == "mc")//logic for multiple choice questions
                            {
                                questionInput[questionIndex] = InvalidMultipleChoiceEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                questionInput[questionIndex] = CheckForCorrectAnswer();//checks for correct answer
                            }
                        }
                        questionIndex++;//increment the question counter for the next iteration
                    }
                }

            Console.WriteLine("Test Complete!");//tells user the test is over
            Console.WriteLine("You answered " + trueFalseCount + " T/F questions correctly and " + multipleChoiceCount + " multiple choice questions correctly.");//tells user their performance
            Console.WriteLine("You missed " + (4 - trueFalseCount) + " T/F questions and " + (6 - multipleChoiceCount) + " multiple choice questions.");

            //this method will check multiple choice answers to ensure they are a number 1-4
            string InvalidMultipleChoiceEntry()
            {
                while (true)
                {
                    var answer = Console.ReadLine();
                    if (answer == "1" || answer == "2" || answer == "3" || answer == "4")
                    {
                        return answer;
                    }

                    Console.WriteLine("Invalid answer type (not 1-4), try again.");
                }
            }

            //this method will check true/false answers to ensure input was a "t" or an "f"
            string InvalidTrueFalseEntry()
            {
                while (true)
                {
                    var answer = Console.ReadLine();
                    if (answer == "t" || answer == "f")
                    {
                        return answer;
                    }

                    Console.WriteLine("Invalid answer type (not t or f), try again.");
                }
            }

            //this method will check the answer to see if it is correct or not, if the entry was valid for the questionType
            string CheckForCorrectAnswer()
            {
                var answer = questionInput[questionIndex];
                if (answer != questionAnswer[questionIndex])//tests for incorrect answer given from a valid input by question type
                {
                    Console.WriteLine("Your answer was: " + questionInput[questionIndex]); //displays the answer chosen by the user
                    Console.WriteLine("Sorry, wrong answer. :-(");
                    Console.WriteLine();
                    questionStatus[questionIndex] = "n";//make sure the question status reflects "n"
                    return answer;
                }
                else //it must be correct, since we've checked against invalid and incorrect answers!
                {
                    Console.WriteLine("Your answer was: " + questionInput[questionIndex]); //displays the answer chosen by the user
                    Console.WriteLine("Correct answer!");
                    questionStatus[questionIndex] = "y";
                    if (questionType[questionIndex] == "tf")
                    {
                        trueFalseCount++;//increment the true/false counter to total the number answered correctly
                    }
                    else
                    {
                        multipleChoiceCount++;//increment the multiple choice counter to total the number answered correctly
                    }
                    Console.WriteLine();
                    return answer; 
                }
            }
        }
    }
}

20190212 REVISED CODE (after Roland's post):

using System;
using System.Threading;

namespace Quiz
{
    class Program
    {
        static void Main(string[] args)
        {
            //start the quiz by telling the student the details of the structure of the quiz and the subject being tested
            Console.WriteLine("Kenneth Myers, ENGR115, Assignment: Checkpoint 4 & 5");
            Console.WriteLine("You are about to take a 10 question quiz on Binary Number Systems.");
            Console.WriteLine("Each question will be displayed with either a True/False or Multiple-choice answer key. Select the correct answer by pressing the corresponding key.");
            Console.WriteLine("If you get the question wrong, you will be notified of the wrong answer and the next question will be displayed.");
            Console.WriteLine("Once all questions have been displayed once, questions answered incorrectly will be displayed in the original order; you may attempt the question again.");
            Console.WriteLine("After all missed questions have been displayed a second time and answered, the results of your quiz will be displayed, by category of question and number answered correctly, and the total number answered correctly.");
            Console.WriteLine(); 

            //create an array with all the questions and possible answers to display to the user
            var questions = new string[] { "Question 1: True or False – Binary numbers consist of a sequence of ones and zeros?",
               "Question 2: Multiple choice – Add the following binary numbers: 1011+0011. "
               +"Answers: 1) 1110, 2) 1022, 3) 1010, 4) 1032.",
               "Question 3: Multiple choice – Add the following binary numbers: 11011011+01100110. "
               +"Answers: 1) 11000001, 2) 11111111, 3) 12111121, 4) 101000001.",
               "Question 4: True or False – Binary numbers are base-10? ",
               "Question 5: Multiple choice – Subtract the following binary numbers: 1110-0101. "
               +"Answers: 1) 1010, 2) 1001, 3) 1000, 4) 0100.",
               "Question 6: Multiple choice – Subtract the following binary numbers: 10010011-01101100. "
               +"Answers: 1) 01101111, 2) 00010111, 3) 00100111, 4) 11011101.",
               "Question 7: True or False – Binary numbers are base-2? ",
               "Question 8: Multiple choice – the binary number 1011 equates to what base-10 number? "
               +"Answers: 1) 11, 2) 22, 3) 14, 4) 7.",
               "Question 9: Multiple choice – what is the binary equivalent of the base-10 number 127? "
               +"Answers: 1) 01101111, 2) 11111111, 3) 10111011, 4) 11111110.",
               "Question 10: True or False: an 8-bit binary number can have a maximum value of 128 in base-10? "};

            //creating array of correct answers, input variables for each question to accept user input in an array, and question status array to track if the question was answered correctly the first time
            var questionAnswer = new string[] { "t", "1", "4", "f", "2", "3", "t", "1", "2", "f" };
            var questionInput = new string[10];
            var questionStatus = new string[] { "n", "n", "n", "n", "n", "n", "n", "n", "n", "n" };
            //define the question types (tf or mc) in an array, set the question iteration globally, and set the question index globally
            var questionType = new string[] { "tf", "mc", "mc", "tf", "mc", "mc", "tf", "mc", "mc", "tf" };
            var questionIteration = 0;
            var questionIndex = 0;
            //defines and sets the true/false counter and multiple choice counters to zero
            var trueFalseCount = 0; var multipleChoiceCount = 0; 

            //start the quiz - display each question, in order starting at question 1, and accept the user input for that question, then display the user input and move to the next question
                for (questionIteration = 1; questionIteration < 3; questionIteration++)//set up a for loop to run 2 iterations of the questions
                {
                    questionIndex = 0;
                    if (questionIteration == 2)
                {
                    Console.WriteLine("Second attempt. Previously incorrectly answered questions will be displayed again. Good luck!");
                }
                    //foreach loop to handle each question and the answer input by the user, plus logic to test for invalid and correct/incorrect answers
                    foreach (string question in questions)
                    {
                        if (questionStatus[questionIndex] == "n")//first attempt at the question
                        {
                            Console.WriteLine(question); //displays the question, starting with question 1
                        if (questionType[questionIndex] == "tf")
                        {
                            Console.WriteLine("Press T or F and Enter to submit");
                        }
                        else if (questionType[questionIndex] == "mc")
                        {
                            Console.WriteLine("Select the number (1, 2, 3 or 4) of the correct answer and press Enter to submit");
                        }
                        if (questionType[questionIndex] == "tf")//logic for true/false questions
                            {
                                questionInput[questionIndex] = InvalidTrueFalseEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                questionInput[questionIndex] = CheckForCorrectAnswer();//checks for correct answer
                            }
                            else if (questionType[questionIndex] == "mc")//logic for multiple choice questions
                            {
                                questionInput[questionIndex] = InvalidMultipleChoiceEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                questionInput[questionIndex] = CheckForCorrectAnswer();//checks for correct answer
                            }
                        }
                        questionIndex++;//increment the question counter for the next iteration
                    }
                }

            Console.WriteLine("Test Complete!");//tells user the test is over
            Console.WriteLine("You answered " + trueFalseCount + " T/F questions correctly and " + multipleChoiceCount + " multiple choice questions correctly.");//tells user their performance
            Console.WriteLine("You missed " + (4 - trueFalseCount) + " T/F questions and " + (6 - multipleChoiceCount) + " multiple choice questions.");

            //this method will check multiple choice answers to ensure they are a number 1-4
            string InvalidMultipleChoiceEntry()
            {
                while (true)
                {
                    var answer = Console.ReadLine();
                    if (answer == "1" || answer == "2" || answer == "3" || answer == "4")
                    {
                        return answer;
                    }

                    Console.WriteLine("Invalid answer type (not 1-4), try again.");
                }
            }

            //this method will check true/false answers to ensure input was a "t" or an "f"
            string InvalidTrueFalseEntry()
            {
                while (true)
                {
                    var answer = Console.ReadLine();
                    if (answer == "t" || answer == "f")
                    {
                        return answer;
                    }

                    Console.WriteLine("Invalid answer type (not t or f), try again.");
                }
            }

            //this method will check the answer to see if it is correct or not, if the entry was valid for the questionType
            string CheckForCorrectAnswer()
            {
                var answer = questionInput[questionIndex];
                if (answer != questionAnswer[questionIndex])//tests for incorrect answer given from a valid input by question type
                {
                    Console.WriteLine("Your answer was: " + questionInput[questionIndex]); //displays the answer chosen by the user
                    Console.WriteLine("Sorry, wrong answer. :-(");
                    Console.WriteLine();
                    questionStatus[questionIndex] = "n";//make sure the question status reflects "n"
                    return answer;
                }
                else //it must be correct, since we've checked against invalid and incorrect answers!
                {
                    Console.WriteLine("Your answer was: " + questionInput[questionIndex]); //displays the answer chosen by the user
                    Console.WriteLine("Correct answer!");
                    questionStatus[questionIndex] = "y";
                    if (questionType[questionIndex] == "tf")
                    {
                        trueFalseCount++;//increment the true/false counter to total the number answered correctly
                    }
                    else
                    {
                        multipleChoiceCount++;//increment the multiple choice counter to total the number answered correctly
                    }
                    Console.WriteLine();
                    return answer; 
                }
            }
        }
    }
}
Removed old code in favor of new code
Source Link
Jamal
  • 34.9k
  • 13
  • 133
  • 237
 using System;

namespace CH5KennethMyers
{
    class Quiz
    {
        static void Main(string[] args)
        {   //start the quiz by telling the student the details of the structure of the quiz and the subject being tested
            System.Console.WriteLine("Kenneth Myers, ENGR115, Assignment: Checkpoint 2");
            System.Console.WriteLine("You are about to take a 10 question quiz on Binary Number Systems.");
            System.Console.WriteLine("Each question will be displayed with either a True/False or Multiple-choice answer key. Select the correct answer by pressing the corresponding key.");
            System.Console.WriteLine("If you get the question wrong, you will be notified of the wrong answer and the next question will be displayed.");
            System.Console.WriteLine("Once all questions have been displayed once, questions answered incorrectly will be displayed in the original order; you may attempt the question again.");
            System.Console.WriteLine("After all missed questions have been displayed a second time and answered, the results of your quiz will be displayed, by category of question and number answered correctly, and the total number answered correctly.");
            System.Threading.Thread.Sleep(5000);//adds a 5 second delay before the next operation to give the user time to read the instructions
            System.Console.Clear(); //clears the screen before starting the test
            //time to define the questions (using an array this time)
            var question = new string[] { "Question 1: True or False – Binary numbers consist of a sequence of ones and zeros? Press T or F and enter to submit", "Question 2: Multiple choice – Add the following binary numbers: 1011+0011. Answers: 1) 1110, 2) 1022, 3) 1010, 4) 1032. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 3: Multiple choice – Add the following binary numbers: 11011011+01100110. Answers: 1) 11000001, 2) 11111111, 3) 12111121, 4) 101000001. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 4: True or False – Binary numbers are base-10? Press T or F and enter to submit", "Question 5: Multiple choice – Subtract the following binary numbers: 1110-0101. Answers: 1) 1010, 2) 1001, 3) 1000, 4) 1000. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 6: Multiple choice – Subtract the following binary numbers: 10010011-01101100. Answers: 1) 01101111, 2) 00010111, 3) 00100111, 4) 11011101. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 7: True or False – Binary numbers are base-2? Press T or F and enter to submit", "Question 8: Multiple choice – the binary number 1011 equates to what base-10 number? Answers: 1) 11, 2) 22, 3) 14, 4) 7. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 9: Multiple choice – what is the binary equivalent of the base-10 number 127? Answers: 1) 01101111, 2) 11111111, 3) 10111011, 4) 11111110. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 10: True or False: an 8-bit binary number can have a maximum value of 128 in base-10? Press T or F and enter to submit" };
            //tried to make the previous line more human readable by putting each question on it's own line, but got a compile error; need to find out if there is a better way to do this
            //time to create the question counters to be used in the loop
            var questionCount = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };//creating array to replace original code
            //create a few question counters to track the number of correctly answered questions (by type) for use at the end to give feedback on number of correctly answered questions
            byte trueFalseCount = 0; byte multipleChoiceCount = 0; //sets the true/false counter and multiple choice counters to zero (default value), used byte since max value should not exceed 255 and won't be negative; these will be used later on in successive iterations of code
            //time to define the answers to the questions and assign to a constant we can compare to later
            var questionAnswer = new string[] { "t", "1", "4", "f", "2", "3", "t", "1", "2", "f" };//creating array to replace original code
            //time to create the input variables for each question to accept user input
            var questionInput = new string[10];
            //define the variable that will count the number of times the quiz questions have been displayed (test iteration)
            byte testIteration = 0;
            //start the quiz - display each question, in order starting at question 1, and accept the user input for that question, then display the user input and move to the next question
            do //start of the loop to display all questions in order, up to 2 times, depending on whether the question is answered correctly the first time
            {   //set the test iteration number
                testIteration++;
                System.Console.Clear();//clear the screen
                System.Threading.Thread.Sleep(3000);//add time delay
                System.Console.WriteLine("Test iteration " + testIteration);//tell user what iteration of the test it is
                System.Threading.Thread.Sleep(3000);//add time delay
                //question 1 (true/false)
                //incrementing question 1 counter by 1
                questionCount[0]++;
                if (questionCount[0] <= 2) //tests question 1 counter to see if equal to or less than 2, if false, should skip to next question. This logic (if loop) is repeated for each question
                {
                    System.Console.WriteLine(question[0]); //displays question 1
                    questionInput[0] = invalidTrueFalseEntry(); //accepts user input for answer to question 1 and stores in variable; later, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[0]); //displays the answer chosen by the user
                    if (questionInput[0] == questionAnswer[0])//tests for correct answer to question
                    {
                        //increments question 1 counter by 1
                        questionCount[0]++;
                        trueFalseCount++;//increments T/F counter by 1 (TF counter counts number of correctly answered TF questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 2 (multiple choice)
                questionCount[1]++;//increment question counter; do this for each question
                if (questionCount[1] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[1]); //displays question 2
                    questionInput[1] = invalidMultipleChoiceEntry(); //accepts user input for answer to question 2 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[1]); //displays the answer chosen by the user
                    if (questionInput[1] == questionAnswer[1])//tests for correct answer to question
                    {
                        //increments question 2 counter by 1
                        questionCount[1]++;
                        multipleChoiceCount++;//increments multiple choice counter by 1 (multiple choice counter counts number of correctly answered multiple choice questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 3 (multiple choice)
                questionCount[2]++;
                if (questionCount[2] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[2]); //displays question 3
                    questionInput[2] = invalidMultipleChoiceEntry(); //accepts user input for answer to question 3 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[2]); //displays the answer chosen by the user
                    if (questionInput[2] == questionAnswer[2])//tests for correct answer to question
                    {
                        //increments question 3 counter by 1
                        questionCount[2]++;
                        multipleChoiceCount++;//increments multiple choice counter by 1 (multiple choice counter counts number of correctly answered multiple choice questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 4 (true/false)
                questionCount[3]++;
                if (questionCount[3] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[3]); //displays question 4
                    questionInput[3] = invalidTrueFalseEntry(); //accepts user input for answer to question 4 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[3]); //displays the answer chosen by the user
                    if (questionInput[3] == questionAnswer[3])//tests for correct answer to question
                    {
                        //question4Count++;
                        //increments question 4 counter by 1
                        questionCount[3]++;
                        trueFalseCount++;//increments T/F counter by 1 (TF counter counts number of correctly answered TF questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 5 (multiple choice)
                questionCount[4]++;
                if (questionCount[4] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[4]); //displays question 5
                    questionInput[4] = invalidMultipleChoiceEntry(); //accepts user input for answer to question 5 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[4]); //displays the answer chosen by the user
                    if (questionInput[4] == questionAnswer[4])//tests for correct answer to question
                    {
                        //increments question 5 counter by 1
                        questionCount[4]++;
                        multipleChoiceCount++;//increments multiple choice counter by 1 (multiple choice counter counts number of correctly answered multiple choice questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 6 (multiple choice)
                questionCount[5]++;
                if (questionCount[5] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[5]); //displays question 6
                    questionInput[5] = invalidMultipleChoiceEntry(); //accepts user input for answer to question 6 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[5]); //displays the answer chosen by the user
                    if (questionInput[5] == questionAnswer[5])//tests for correct answer to question
                    {
                        //question6Count++;
                        //increments question 6 counter by 1
                        questionCount[5]++;
                        multipleChoiceCount++;//increments multiple choice counter by 1 (multiple choice counter counts number of correctly answered multiple choice questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 7 (true/false)
                questionCount[6]++;
                if (questionCount[6] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[6]); //displays question 7
                    questionInput[6] = invalidTrueFalseEntry(); //accepts user input for answer to question 7 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[6]); //displays the answer chosen by the user
                    if (questionInput[6] == questionAnswer[6])//tests for correct answer to question
                    {
                        //increments question 7 counter by 1
                        questionCount[6]++;
                        trueFalseCount++;//increments T/F counter by 1 (TF counter counts number of correctly answered TF questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 8 (multiple choice)
                questionCount[7]++;
                if (questionCount[7] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[7]); //displays question 8
                    questionInput[7] = invalidMultipleChoiceEntry(); //accepts user input for answer to question 8 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[7]); //displays the answer chosen by the user
                    if (questionInput[7] == questionAnswer[7])//tests for correct answer to question
                    {
                        //increments question 8 counter by 1
                        questionCount[7]++;
                        multipleChoiceCount++;//increments multiple choice counter by 1 (multiple choice counter counts number of correctly answered multiple choice questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 9 (multiple choice)
                questionCount[8]++;
                if (questionCount[8] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[8]); //displays question 9
                    questionInput[8] = invalidMultipleChoiceEntry(); //accepts user input for answer to question 9 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[8]); //displays the answer chosen by the user
                    if (questionInput[8] == questionAnswer[8])//tests for correct answer to question
                    {
                        //increments question 9 counter by 1
                        questionCount[8]++;
                        multipleChoiceCount++;//increments multiple choice counter by 1 (multiple choice counter counts number of correctly answered multiple choice questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 10 (true/false)
                questionCount[9]++;
                if (questionCount[9] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[9]); //displays question 10
                    questionInput[9] = invalidTrueFalseEntry(); //accepts user input for answer to question 10 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[9]); //displays the answer chosen by the user
                    if (questionInput[9] == questionAnswer[9])//tests for correct answer to question
                    {
                        //increments question 10 counter by 1
                        questionCount[9]++;
                        trueFalseCount++;//increments T/F counter by 1 (TF counter counts number of correctly answered TF questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                }
                if (testIteration < 2)//this will determine if this is the first iteration, and if so, tell the user that they can try missed questions again
                {
                    System.Console.WriteLine("Incorrectly answered questions will be displayed a second time, so try again!");
                }
                System.Threading.Thread.Sleep(3000);
            }
            while (questionCount[9] <= 2);
            System.Console.WriteLine("Test Complete!");//tells user the test is over
            System.Console.WriteLine("You answered " + trueFalseCount + " T/F questions correctly and " + multipleChoiceCount + " multiple choice questions correctly.");//tells user their performance
            System.Console.WriteLine("You missed " + (4 - trueFalseCount) + " T/F questions and " + (6 - multipleChoiceCount) + " multiple choice questions.");
            System.Threading.Thread.Sleep(5000);

        }

        static string invalidTrueFalseEntry()//this method will check true/false answers to ensure input was a "t" or an "f"
        {
            var answer = System.Console.ReadLine();
            if (answer != "t" && answer != "f")
            {
                System.Console.WriteLine("Invalid answer type (not t or f), try again.");
                return invalidTrueFalseEntry();
            }
            return answer;
        }
        static string invalidMultipleChoiceEntry()//this method will check multiple choice answers to ensure they are a number 1-4
        {
            var answer = System.Console.ReadLine();
            if (answer != "1" && answer != "2" && answer != "3" && answer != "4")
            {
                System.Console.WriteLine("Invalid answer type (not 1-4), try again.");
                return invalidMultipleChoiceEntry();
            }
            return answer;
        }
    }
}

It seems to me that there is alot of duplicate code, and I've been trying to figure out the best way to go about this, but I'm struggling to do so. I re-worked my code as such:

using System;

namespace CH5testing
{
    class Quiz
    {
        static void Main(string[] args)
        {   //start the quiz by telling the student the details of the structure of the quiz and the subject being tested
            System.Console.WriteLine("Kenneth Myers, ENGR115, Assignment: Checkpoint 4");
            System.Console.WriteLine("You are about to take a 10 question quiz on Binary Number Systems.");
            System.Console.WriteLine("Each question will be displayed with either a True/False or Multiple-choice answer key. Select the correct answer by pressing the corresponding key.");
            System.Console.WriteLine("If you get the question wrong, you will be notified of the wrong answer and the next question will be displayed.");
            System.Console.WriteLine("Once all questions have been displayed once, questions answered incorrectly will be displayed in the original order; you may attempt the question again.");
            System.Console.WriteLine("After all missed questions have been displayed a second time and answered, the results of your quiz will be displayed, by category of question and number answered correctly, and the total number answered correctly.");
            System.Threading.Thread.Sleep(5000);//adds a 5 second delay before the next operation to give the user time to read the instructions
            System.Console.Clear(); //clears the screen before starting the test
            //define the test iteration counter to track the number of test iterations
            var testIteration = 0;
            //define the questions (using an array this time)
            var questions = new string[] { "Question 1: True or False – Binary numbers consist of a sequence of ones and zeros? Press T or F and enter to submit", "Question 2: Multiple choice – Add the following binary numbers: 1011+0011. Answers: 1) 1110, 2) 1022, 3) 1010, 4) 1032. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 3: Multiple choice – Add the following binary numbers: 11011011+01100110. Answers: 1) 11000001, 2) 11111111, 3) 12111121, 4) 101000001. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 4: True or False – Binary numbers are base-10? Press T or F and enter to submit", "Question 5: Multiple choice – Subtract the following binary numbers: 1110-0101. Answers: 1) 1010, 2) 1001, 3) 1000, 4) 1000. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 6: Multiple choice – Subtract the following binary numbers: 10010011-01101100. Answers: 1) 01101111, 2) 00010111, 3) 00100111, 4) 11011101. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 7: True or False – Binary numbers are base-2? Press T or F and enter to submit", "Question 8: Multiple choice – the binary number 1011 equates to what base-10 number? Answers: 1) 11, 2) 22, 3) 14, 4) 7. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 9: Multiple choice – what is the binary equivalent of the base-10 number 127? Answers: 1) 01101111, 2) 11111111, 3) 10111011, 4) 11111110. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 10: True or False: an 8-bit binary number can have a maximum value of 128 in base-10? Press T or F and enter to submit" };
            //tried to make the previous line more human readable by putting each question on it's own line, but got a compile error; need to find out if there is a better way to do this
            //create a few question counters to track the number of correctly answered questions (by type) for use at the end to give feedback on number of correctly answered questions
            byte trueFalseCount = 0; byte multipleChoiceCount = 0; //sets the true/false counter and multiple choice counters to zero (default value), used byte since max value should not exceed 255 and won't be negative; these will be used later on in successive iterations of code
            var questionCount = 0;
            //define the answers to the questions and assign to a constant we can compare to later
            var questionAnswer = new string[] { "t", "1", "4", "f", "2", "3", "t", "1", "2", "f" };//creating array to replace original code
            //create the input variables for each question to accept user input
            var questionInput = new string[10];
            //create question status array to track if the question was answered correctly the first time
            var questionStatus = new string[] { "n", "n", "n", "n", "n", "n", "n", "n", "n", "n" };
            //define the question types (tf or mc) in an array
            var questionType = new string[] { "tf", "mc", "mc", "tf", "mc", "mc", "tf", "mc", "mc", "tf" };
            //start the quiz - display each question, in order starting at question 1, and accept the user input for that question, then display the user input and move to the next question
            for (testIteration = 1; testIteration < 3; testIteration++) //start of the loop to display all questions in order, up to 2 times, depending on whether the question is answered correctly the first time
            {
                System.Console.Clear();//clear the screen
                System.Console.WriteLine("Test iteration " + testIteration);//tell user what iteration of the test it is
                //define the question counter to keep track of which question we are on 
                questionCount = 0;
                //foreach loop to handle each question and the answer input by the user, plus logic to test for invalid and correct/incorrect answers
                foreach (string question in questions)
                {
                        if (questionStatus[questionCount] == "n")
                        {
                            System.Console.WriteLine(questionCount);//used for debugging while running to see what this variable is during execution
                            System.Console.WriteLine(question); //displays the question, starting with question 1
                                if (questionType[questionCount] == "tf")
                                {
                                    questionInput[questionCount] = invalidTrueFalseEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                }
                                else if (questionType[questionCount] == "mc")
                                {
                                    questionInput[questionCount] = invalidMultipleChoiceEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                }
                                else if (questionInput[questionCount] == questionAnswer[questionCount])//tests for correct answer to question
                                {
                                System.Console.WriteLine("Your answer was: " + questionInput[questionCount]); //displays the answer chosen by the user
                                System.Console.WriteLine("Correct answer!");
                                questionStatus[questionCount] = "y";
                                    questionCount++;
                                    System.Console.Clear();//clear the screen
                                        if (questionType[questionCount] == "tf")
                                        {
                                            trueFalseCount++;//increments T/F counter by 1 (TF counter counts number of correctly answered TF questions)
                                        }
                                        else if (questionType[questionCount] == "mc")
                                        {
                                            multipleChoiceCount++;//increments multiple choice counter by 1 (multiple choice counter counts number of correctly answered multiple choice questions)
                                        }
                                }
                                else if (questionInput[questionCount] != questionAnswer[questionCount])
                                {
                                    System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                                    System.Console.Clear();//clear the screen
                                }
                        }
                        System.Threading.Thread.Sleep(3000);
                        System.Console.Clear();//clear the screen
                }
                string invalidMultipleChoiceEntry()//this method will check multiple choice answers to ensure they are a number 1-4
                {
                    var answer = System.Console.ReadLine();
                    if (answer != "1" && answer != "2" && answer != "3" && answer != "4")
                    {
                        System.Console.WriteLine("Invalid answer type (not 1-4), try again.");
                        return invalidMultipleChoiceEntry();
                    }
                    return answer;
                }
                string invalidTrueFalseEntry()//this method will check true/false answers to ensure input was a "t" or an "f"
                {
                    var answer = System.Console.ReadLine();
                    if (answer != "t" && answer != "f")
                    {
                        System.Console.WriteLine("Invalid answer type (not t or f), try again.");
                        return invalidTrueFalseEntry();
                    }
                    return answer;
                }
                System.Console.WriteLine("Test Complete!");//tells user the test is over
                System.Console.WriteLine("You answered " + trueFalseCount + " T/F questions correctly and " + multipleChoiceCount + " multiple choice questions correctly.");//tells user their performance
                System.Console.WriteLine("You missed " + (4 - trueFalseCount) + " T/F questions and " + (6 - multipleChoiceCount) + " multiple choice questions.");
                System.Threading.Thread.Sleep(5000);
            }
            
        }
    }
}

This is much shorter, but now I'm not getting the same behavior or even what I'm expecting to get sometimes. I'm attempting to get the same behavior as before, but with optimized code. Also, this week we are learning about OOP, but I'm still stuck on this and I feel like I can't move on to OOP until I figured this out. I spent quite a few hours developing the second code last night (until 2 am), with numerous errors that I had to work through to get to this point, and now I'm frustrated.

FWIW, I'm using Visual Studio 17 on Win10. Any suggestions, tips, pointers, etc. would be greatly appreciated.

20190210 EDIT: Revised code:

 using System;
using System;
using System.Threading;

namespace Quiz
{
    class Program
    {
        static void Main(string[] args)
        {
            //start the quiz by telling the student the details of the structure of the quiz and the subject being tested
            Console.WriteLine("Kenneth Myers, ENGR115, Assignment: Checkpoint 4 & 5");
            Console.WriteLine("You are about to take a 10 question quiz on Binary Number Systems.");
            Console.WriteLine("Each question will be displayed with either a True/False or Multiple-choice answer key. Select the correct answer by pressing the corresponding key.");
            Console.WriteLine("If you get the question wrong, you will be notified of the wrong answer and the next question will be displayed.");
            Console.WriteLine("Once all questions have been displayed once, questions answered incorrectly will be displayed in the original order; you may attempt the question again.");
            Console.WriteLine("After all missed questions have been displayed a second time and answered, the results of your quiz will be displayed, by category of question and number answered correctly, and the total number answered correctly.");
            Thread.Sleep(5000);//adds a 5 second delay before the next operation to give the user time to read the instructions
            Console.Clear(); //clears the screen before starting the test
            //create an array with all the questions and possible answers to display to the user
            var questions = new string[] { "Question 1: True or False – Binary numbers consist of a sequence of ones and zeros? Press T or F and enter to submit", "Question 2: Multiple choice – Add the following binary numbers: 1011+0011. Answers: 1) 1110, 2) 1022, 3) 1010, 4) 1032. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 3: Multiple choice – Add the following binary numbers: 11011011+01100110. Answers: 1) 11000001, 2) 11111111, 3) 12111121, 4) 101000001. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 4: True or False – Binary numbers are base-10? Press T or F and enter to submit", "Question 5: Multiple choice – Subtract the following binary numbers: 1110-0101. Answers: 1) 1010, 2) 1001, 3) 1000, 4) 0100. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 6: Multiple choice – Subtract the following binary numbers: 10010011-01101100. Answers: 1) 01101111, 2) 00010111, 3) 00100111, 4) 11011101. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 7: True or False – Binary numbers are base-2? Press T or F and enter to submit", "Question 8: Multiple choice – the binary number 1011 equates to what base-10 number? Answers: 1) 11, 2) 22, 3) 14, 4) 7. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 9: Multiple choice – what is the binary equivalent of the base-10 number 127? Answers: 1) 01101111, 2) 11111111, 3) 10111011, 4) 11111110. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 10: True or False: an 8-bit binary number can have a maximum value of 128 in base-10? Press T or F and enter to submit" };
            var questionAnswer = new string[] { "t", "1", "4", "f", "2", "3", "t", "1", "2", "f" };//creating array of correct answers
            var questionInput = new string[10];//create the input variables for each question to accept user input in an array
            var questionStatus = new string[] { "n", "n", "n", "n", "n", "n", "n", "n", "n", "n" };//create question status array to track if the question was answered correctly the first time
            var questionType = new string[] { "tf", "mc", "mc", "tf", "mc", "mc", "tf", "mc", "mc", "tf" };//define the question types (tf or mc) in an array
            var questionIteration = 0;//set the question iteration globally
            var questionCount = 0;//set the question count globally
            var trueFalseCount = 0; var multipleChoiceCount = 0; //sets the true/false counter and multiple choice counters to zero
            //start the quiz - display each question, in order starting at question 1, and accept the user input for that question, then display the user input and move to the next question
                Console.Clear();//clear the screen
                for (questionIteration = 1; questionIteration < 3; questionIteration++)//set up a for loop to run 2 iterations of the questions
                {
                    questionCount = 0;
                    if (questionIteration == 2)
                {
                    Console.WriteLine("Second attempt. Previously incorrectly answered questions will be displayed again. Good luck!");
                }
                    foreach (string question in questions)//foreach loop to handle each question and the answer input by the user, plus logic to test for invalid and correct/incorrect answers
                    {
                        if (questionStatus[questionCount] == "n")//first attempt at the question
                        {
                            Console.WriteLine(question); //displays the question, starting with question 1
                            if (questionType[questionCount] == "tf")//logic for true/false questions
                            {
                                questionInput[questionCount] = InvalidTrueFalseEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                questionInput[questionCount] = CheckForCorrectAnswer();//checks for correct answer
                            }
                            else if (questionType[questionCount] == "mc")//logic for multiple choice questions
                            {
                                questionInput[questionCount] = InvalidMultipleChoiceEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                questionInput[questionCount] = CheckForCorrectAnswer();//checks for correct answer
                            }
                            Console.Clear();//clear the screen
                        }
                        //else if (questionStatus[questionCount] == "y")
                        //{
                        //Console.WriteLine("Second attempt!");//tell the user it's their second attempt
                        //}
                        questionCount++;//increment the question counter for the next iteration
                    }
                }
            Console.WriteLine("Test Complete!");//tells user the test is over
            Console.WriteLine("You answered " + trueFalseCount + " T/F questions correctly and " + multipleChoiceCount + " multiple choice questions correctly.");//tells user their performance
            Console.WriteLine("You missed " + (4 - trueFalseCount) + " T/F questions and " + (6 - multipleChoiceCount) + " multiple choice questions.");
            Thread.Sleep(5000); Console.Clear();//clear the screen
            string InvalidMultipleChoiceEntry()//this method will check multiple choice answers to ensure they are a number 1-4
            {
                var answer = Console.ReadLine();
                if (answer != "1" && answer != "2" && answer != "3" && answer != "4")//did the user input a numner between 1 and 4?
                {
                    Console.WriteLine("Invalid answer type (not 1-4), try again.");//if not, try again until they do!
                    return InvalidMultipleChoiceEntry();
                }
                return answer;
            }
            string InvalidTrueFalseEntry()//this method will check true/false answers to ensure input was a "t" or an "f"
            {
                var answer = Console.ReadLine();//get the user input
                if (answer != "t" && answer != "f")//did the user input a t or f?
                {
                    Console.WriteLine("Invalid answer type (not t or f), try again.");//if not, try again until they do!
                    return InvalidTrueFalseEntry();
                }
                return answer;
            }
            string CheckForCorrectAnswer()//this method will check the answer to see if it is correct or not, if the entry was valid for the questionType
            {
                var answer = questionInput[questionCount];
                if (answer != questionAnswer[questionCount])//tests for incorrect answer given from a valid input by question type
                {
                    Console.WriteLine("Your answer was: " + questionInput[questionCount]); //displays the answer chosen by the user
                    Console.WriteLine("Sorry, wrong answer. :-(");
                    Thread.Sleep(2000);
                    questionStatus[questionCount] = "n";//make sure the question status reflects "n"
                    return answer;
                }
                else //it must be correct, since we've checked against invalid and incorrect answers!
                {
                    Console.WriteLine("Your answer was: " + questionInput[questionCount]); //displays the answer chosen by the user
                    Console.WriteLine("Correct answer!");
                    questionStatus[questionCount] = "y";
                    if (questionType[questionCount] == "tf")
                    {
                        trueFalseCount++;//increment the true/false counter to total the number answered correctly
                    }
                    else
                    {
                        multipleChoiceCount++;//increment the multiple choice counter to total the number answered correctly
                    }
                    Thread.Sleep(2000);
                    return answer; 
                }
            }
        }
    }
}
 using System;

namespace CH5KennethMyers
{
    class Quiz
    {
        static void Main(string[] args)
        {   //start the quiz by telling the student the details of the structure of the quiz and the subject being tested
            System.Console.WriteLine("Kenneth Myers, ENGR115, Assignment: Checkpoint 2");
            System.Console.WriteLine("You are about to take a 10 question quiz on Binary Number Systems.");
            System.Console.WriteLine("Each question will be displayed with either a True/False or Multiple-choice answer key. Select the correct answer by pressing the corresponding key.");
            System.Console.WriteLine("If you get the question wrong, you will be notified of the wrong answer and the next question will be displayed.");
            System.Console.WriteLine("Once all questions have been displayed once, questions answered incorrectly will be displayed in the original order; you may attempt the question again.");
            System.Console.WriteLine("After all missed questions have been displayed a second time and answered, the results of your quiz will be displayed, by category of question and number answered correctly, and the total number answered correctly.");
            System.Threading.Thread.Sleep(5000);//adds a 5 second delay before the next operation to give the user time to read the instructions
            System.Console.Clear(); //clears the screen before starting the test
            //time to define the questions (using an array this time)
            var question = new string[] { "Question 1: True or False – Binary numbers consist of a sequence of ones and zeros? Press T or F and enter to submit", "Question 2: Multiple choice – Add the following binary numbers: 1011+0011. Answers: 1) 1110, 2) 1022, 3) 1010, 4) 1032. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 3: Multiple choice – Add the following binary numbers: 11011011+01100110. Answers: 1) 11000001, 2) 11111111, 3) 12111121, 4) 101000001. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 4: True or False – Binary numbers are base-10? Press T or F and enter to submit", "Question 5: Multiple choice – Subtract the following binary numbers: 1110-0101. Answers: 1) 1010, 2) 1001, 3) 1000, 4) 1000. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 6: Multiple choice – Subtract the following binary numbers: 10010011-01101100. Answers: 1) 01101111, 2) 00010111, 3) 00100111, 4) 11011101. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 7: True or False – Binary numbers are base-2? Press T or F and enter to submit", "Question 8: Multiple choice – the binary number 1011 equates to what base-10 number? Answers: 1) 11, 2) 22, 3) 14, 4) 7. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 9: Multiple choice – what is the binary equivalent of the base-10 number 127? Answers: 1) 01101111, 2) 11111111, 3) 10111011, 4) 11111110. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 10: True or False: an 8-bit binary number can have a maximum value of 128 in base-10? Press T or F and enter to submit" };
            //tried to make the previous line more human readable by putting each question on it's own line, but got a compile error; need to find out if there is a better way to do this
            //time to create the question counters to be used in the loop
            var questionCount = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };//creating array to replace original code
            //create a few question counters to track the number of correctly answered questions (by type) for use at the end to give feedback on number of correctly answered questions
            byte trueFalseCount = 0; byte multipleChoiceCount = 0; //sets the true/false counter and multiple choice counters to zero (default value), used byte since max value should not exceed 255 and won't be negative; these will be used later on in successive iterations of code
            //time to define the answers to the questions and assign to a constant we can compare to later
            var questionAnswer = new string[] { "t", "1", "4", "f", "2", "3", "t", "1", "2", "f" };//creating array to replace original code
            //time to create the input variables for each question to accept user input
            var questionInput = new string[10];
            //define the variable that will count the number of times the quiz questions have been displayed (test iteration)
            byte testIteration = 0;
            //start the quiz - display each question, in order starting at question 1, and accept the user input for that question, then display the user input and move to the next question
            do //start of the loop to display all questions in order, up to 2 times, depending on whether the question is answered correctly the first time
            {   //set the test iteration number
                testIteration++;
                System.Console.Clear();//clear the screen
                System.Threading.Thread.Sleep(3000);//add time delay
                System.Console.WriteLine("Test iteration " + testIteration);//tell user what iteration of the test it is
                System.Threading.Thread.Sleep(3000);//add time delay
                //question 1 (true/false)
                //incrementing question 1 counter by 1
                questionCount[0]++;
                if (questionCount[0] <= 2) //tests question 1 counter to see if equal to or less than 2, if false, should skip to next question. This logic (if loop) is repeated for each question
                {
                    System.Console.WriteLine(question[0]); //displays question 1
                    questionInput[0] = invalidTrueFalseEntry(); //accepts user input for answer to question 1 and stores in variable; later, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[0]); //displays the answer chosen by the user
                    if (questionInput[0] == questionAnswer[0])//tests for correct answer to question
                    {
                        //increments question 1 counter by 1
                        questionCount[0]++;
                        trueFalseCount++;//increments T/F counter by 1 (TF counter counts number of correctly answered TF questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 2 (multiple choice)
                questionCount[1]++;//increment question counter; do this for each question
                if (questionCount[1] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[1]); //displays question 2
                    questionInput[1] = invalidMultipleChoiceEntry(); //accepts user input for answer to question 2 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[1]); //displays the answer chosen by the user
                    if (questionInput[1] == questionAnswer[1])//tests for correct answer to question
                    {
                        //increments question 2 counter by 1
                        questionCount[1]++;
                        multipleChoiceCount++;//increments multiple choice counter by 1 (multiple choice counter counts number of correctly answered multiple choice questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 3 (multiple choice)
                questionCount[2]++;
                if (questionCount[2] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[2]); //displays question 3
                    questionInput[2] = invalidMultipleChoiceEntry(); //accepts user input for answer to question 3 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[2]); //displays the answer chosen by the user
                    if (questionInput[2] == questionAnswer[2])//tests for correct answer to question
                    {
                        //increments question 3 counter by 1
                        questionCount[2]++;
                        multipleChoiceCount++;//increments multiple choice counter by 1 (multiple choice counter counts number of correctly answered multiple choice questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 4 (true/false)
                questionCount[3]++;
                if (questionCount[3] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[3]); //displays question 4
                    questionInput[3] = invalidTrueFalseEntry(); //accepts user input for answer to question 4 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[3]); //displays the answer chosen by the user
                    if (questionInput[3] == questionAnswer[3])//tests for correct answer to question
                    {
                        //question4Count++;
                        //increments question 4 counter by 1
                        questionCount[3]++;
                        trueFalseCount++;//increments T/F counter by 1 (TF counter counts number of correctly answered TF questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 5 (multiple choice)
                questionCount[4]++;
                if (questionCount[4] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[4]); //displays question 5
                    questionInput[4] = invalidMultipleChoiceEntry(); //accepts user input for answer to question 5 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[4]); //displays the answer chosen by the user
                    if (questionInput[4] == questionAnswer[4])//tests for correct answer to question
                    {
                        //increments question 5 counter by 1
                        questionCount[4]++;
                        multipleChoiceCount++;//increments multiple choice counter by 1 (multiple choice counter counts number of correctly answered multiple choice questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 6 (multiple choice)
                questionCount[5]++;
                if (questionCount[5] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[5]); //displays question 6
                    questionInput[5] = invalidMultipleChoiceEntry(); //accepts user input for answer to question 6 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[5]); //displays the answer chosen by the user
                    if (questionInput[5] == questionAnswer[5])//tests for correct answer to question
                    {
                        //question6Count++;
                        //increments question 6 counter by 1
                        questionCount[5]++;
                        multipleChoiceCount++;//increments multiple choice counter by 1 (multiple choice counter counts number of correctly answered multiple choice questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 7 (true/false)
                questionCount[6]++;
                if (questionCount[6] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[6]); //displays question 7
                    questionInput[6] = invalidTrueFalseEntry(); //accepts user input for answer to question 7 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[6]); //displays the answer chosen by the user
                    if (questionInput[6] == questionAnswer[6])//tests for correct answer to question
                    {
                        //increments question 7 counter by 1
                        questionCount[6]++;
                        trueFalseCount++;//increments T/F counter by 1 (TF counter counts number of correctly answered TF questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 8 (multiple choice)
                questionCount[7]++;
                if (questionCount[7] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[7]); //displays question 8
                    questionInput[7] = invalidMultipleChoiceEntry(); //accepts user input for answer to question 8 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[7]); //displays the answer chosen by the user
                    if (questionInput[7] == questionAnswer[7])//tests for correct answer to question
                    {
                        //increments question 8 counter by 1
                        questionCount[7]++;
                        multipleChoiceCount++;//increments multiple choice counter by 1 (multiple choice counter counts number of correctly answered multiple choice questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 9 (multiple choice)
                questionCount[8]++;
                if (questionCount[8] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[8]); //displays question 9
                    questionInput[8] = invalidMultipleChoiceEntry(); //accepts user input for answer to question 9 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[8]); //displays the answer chosen by the user
                    if (questionInput[8] == questionAnswer[8])//tests for correct answer to question
                    {
                        //increments question 9 counter by 1
                        questionCount[8]++;
                        multipleChoiceCount++;//increments multiple choice counter by 1 (multiple choice counter counts number of correctly answered multiple choice questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                    System.Threading.Thread.Sleep(3000);
                }
                //question 10 (true/false)
                questionCount[9]++;
                if (questionCount[9] <= 2)
                {
                    System.Console.Clear();
                    System.Console.WriteLine(question[9]); //displays question 10
                    questionInput[9] = invalidTrueFalseEntry(); //accepts user input for answer to question 10 and stores in variable, passes input to method to test if valid input type
                    System.Console.WriteLine("Your answer was: " + questionInput[9]); //displays the answer chosen by the user
                    if (questionInput[9] == questionAnswer[9])//tests for correct answer to question
                    {
                        //increments question 10 counter by 1
                        questionCount[9]++;
                        trueFalseCount++;//increments T/F counter by 1 (TF counter counts number of correctly answered TF questions)
                        System.Console.WriteLine("Correct answer!");
                    }
                    else
                    {
                        System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                    }
                }
                if (testIteration < 2)//this will determine if this is the first iteration, and if so, tell the user that they can try missed questions again
                {
                    System.Console.WriteLine("Incorrectly answered questions will be displayed a second time, so try again!");
                }
                System.Threading.Thread.Sleep(3000);
            }
            while (questionCount[9] <= 2);
            System.Console.WriteLine("Test Complete!");//tells user the test is over
            System.Console.WriteLine("You answered " + trueFalseCount + " T/F questions correctly and " + multipleChoiceCount + " multiple choice questions correctly.");//tells user their performance
            System.Console.WriteLine("You missed " + (4 - trueFalseCount) + " T/F questions and " + (6 - multipleChoiceCount) + " multiple choice questions.");
            System.Threading.Thread.Sleep(5000);

        }

        static string invalidTrueFalseEntry()//this method will check true/false answers to ensure input was a "t" or an "f"
        {
            var answer = System.Console.ReadLine();
            if (answer != "t" && answer != "f")
            {
                System.Console.WriteLine("Invalid answer type (not t or f), try again.");
                return invalidTrueFalseEntry();
            }
            return answer;
        }
        static string invalidMultipleChoiceEntry()//this method will check multiple choice answers to ensure they are a number 1-4
        {
            var answer = System.Console.ReadLine();
            if (answer != "1" && answer != "2" && answer != "3" && answer != "4")
            {
                System.Console.WriteLine("Invalid answer type (not 1-4), try again.");
                return invalidMultipleChoiceEntry();
            }
            return answer;
        }
    }
}

It seems to me that there is alot of duplicate code, and I've been trying to figure out the best way to go about this, but I'm struggling to do so. I re-worked my code as such:

using System;

namespace CH5testing
{
    class Quiz
    {
        static void Main(string[] args)
        {   //start the quiz by telling the student the details of the structure of the quiz and the subject being tested
            System.Console.WriteLine("Kenneth Myers, ENGR115, Assignment: Checkpoint 4");
            System.Console.WriteLine("You are about to take a 10 question quiz on Binary Number Systems.");
            System.Console.WriteLine("Each question will be displayed with either a True/False or Multiple-choice answer key. Select the correct answer by pressing the corresponding key.");
            System.Console.WriteLine("If you get the question wrong, you will be notified of the wrong answer and the next question will be displayed.");
            System.Console.WriteLine("Once all questions have been displayed once, questions answered incorrectly will be displayed in the original order; you may attempt the question again.");
            System.Console.WriteLine("After all missed questions have been displayed a second time and answered, the results of your quiz will be displayed, by category of question and number answered correctly, and the total number answered correctly.");
            System.Threading.Thread.Sleep(5000);//adds a 5 second delay before the next operation to give the user time to read the instructions
            System.Console.Clear(); //clears the screen before starting the test
            //define the test iteration counter to track the number of test iterations
            var testIteration = 0;
            //define the questions (using an array this time)
            var questions = new string[] { "Question 1: True or False – Binary numbers consist of a sequence of ones and zeros? Press T or F and enter to submit", "Question 2: Multiple choice – Add the following binary numbers: 1011+0011. Answers: 1) 1110, 2) 1022, 3) 1010, 4) 1032. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 3: Multiple choice – Add the following binary numbers: 11011011+01100110. Answers: 1) 11000001, 2) 11111111, 3) 12111121, 4) 101000001. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 4: True or False – Binary numbers are base-10? Press T or F and enter to submit", "Question 5: Multiple choice – Subtract the following binary numbers: 1110-0101. Answers: 1) 1010, 2) 1001, 3) 1000, 4) 1000. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 6: Multiple choice – Subtract the following binary numbers: 10010011-01101100. Answers: 1) 01101111, 2) 00010111, 3) 00100111, 4) 11011101. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 7: True or False – Binary numbers are base-2? Press T or F and enter to submit", "Question 8: Multiple choice – the binary number 1011 equates to what base-10 number? Answers: 1) 11, 2) 22, 3) 14, 4) 7. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 9: Multiple choice – what is the binary equivalent of the base-10 number 127? Answers: 1) 01101111, 2) 11111111, 3) 10111011, 4) 11111110. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 10: True or False: an 8-bit binary number can have a maximum value of 128 in base-10? Press T or F and enter to submit" };
            //tried to make the previous line more human readable by putting each question on it's own line, but got a compile error; need to find out if there is a better way to do this
            //create a few question counters to track the number of correctly answered questions (by type) for use at the end to give feedback on number of correctly answered questions
            byte trueFalseCount = 0; byte multipleChoiceCount = 0; //sets the true/false counter and multiple choice counters to zero (default value), used byte since max value should not exceed 255 and won't be negative; these will be used later on in successive iterations of code
            var questionCount = 0;
            //define the answers to the questions and assign to a constant we can compare to later
            var questionAnswer = new string[] { "t", "1", "4", "f", "2", "3", "t", "1", "2", "f" };//creating array to replace original code
            //create the input variables for each question to accept user input
            var questionInput = new string[10];
            //create question status array to track if the question was answered correctly the first time
            var questionStatus = new string[] { "n", "n", "n", "n", "n", "n", "n", "n", "n", "n" };
            //define the question types (tf or mc) in an array
            var questionType = new string[] { "tf", "mc", "mc", "tf", "mc", "mc", "tf", "mc", "mc", "tf" };
            //start the quiz - display each question, in order starting at question 1, and accept the user input for that question, then display the user input and move to the next question
            for (testIteration = 1; testIteration < 3; testIteration++) //start of the loop to display all questions in order, up to 2 times, depending on whether the question is answered correctly the first time
            {
                System.Console.Clear();//clear the screen
                System.Console.WriteLine("Test iteration " + testIteration);//tell user what iteration of the test it is
                //define the question counter to keep track of which question we are on 
                questionCount = 0;
                //foreach loop to handle each question and the answer input by the user, plus logic to test for invalid and correct/incorrect answers
                foreach (string question in questions)
                {
                        if (questionStatus[questionCount] == "n")
                        {
                            System.Console.WriteLine(questionCount);//used for debugging while running to see what this variable is during execution
                            System.Console.WriteLine(question); //displays the question, starting with question 1
                                if (questionType[questionCount] == "tf")
                                {
                                    questionInput[questionCount] = invalidTrueFalseEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                }
                                else if (questionType[questionCount] == "mc")
                                {
                                    questionInput[questionCount] = invalidMultipleChoiceEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                }
                                else if (questionInput[questionCount] == questionAnswer[questionCount])//tests for correct answer to question
                                {
                                System.Console.WriteLine("Your answer was: " + questionInput[questionCount]); //displays the answer chosen by the user
                                System.Console.WriteLine("Correct answer!");
                                questionStatus[questionCount] = "y";
                                    questionCount++;
                                    System.Console.Clear();//clear the screen
                                        if (questionType[questionCount] == "tf")
                                        {
                                            trueFalseCount++;//increments T/F counter by 1 (TF counter counts number of correctly answered TF questions)
                                        }
                                        else if (questionType[questionCount] == "mc")
                                        {
                                            multipleChoiceCount++;//increments multiple choice counter by 1 (multiple choice counter counts number of correctly answered multiple choice questions)
                                        }
                                }
                                else if (questionInput[questionCount] != questionAnswer[questionCount])
                                {
                                    System.Console.WriteLine("Sorry, wrong answer. :-(");//or if the answer was wrong, display this!
                                    System.Console.Clear();//clear the screen
                                }
                        }
                        System.Threading.Thread.Sleep(3000);
                        System.Console.Clear();//clear the screen
                }
                string invalidMultipleChoiceEntry()//this method will check multiple choice answers to ensure they are a number 1-4
                {
                    var answer = System.Console.ReadLine();
                    if (answer != "1" && answer != "2" && answer != "3" && answer != "4")
                    {
                        System.Console.WriteLine("Invalid answer type (not 1-4), try again.");
                        return invalidMultipleChoiceEntry();
                    }
                    return answer;
                }
                string invalidTrueFalseEntry()//this method will check true/false answers to ensure input was a "t" or an "f"
                {
                    var answer = System.Console.ReadLine();
                    if (answer != "t" && answer != "f")
                    {
                        System.Console.WriteLine("Invalid answer type (not t or f), try again.");
                        return invalidTrueFalseEntry();
                    }
                    return answer;
                }
                System.Console.WriteLine("Test Complete!");//tells user the test is over
                System.Console.WriteLine("You answered " + trueFalseCount + " T/F questions correctly and " + multipleChoiceCount + " multiple choice questions correctly.");//tells user their performance
                System.Console.WriteLine("You missed " + (4 - trueFalseCount) + " T/F questions and " + (6 - multipleChoiceCount) + " multiple choice questions.");
                System.Threading.Thread.Sleep(5000);
            }
            
        }
    }
}

This is much shorter, but now I'm not getting the same behavior or even what I'm expecting to get sometimes. I'm attempting to get the same behavior as before, but with optimized code. Also, this week we are learning about OOP, but I'm still stuck on this and I feel like I can't move on to OOP until I figured this out. I spent quite a few hours developing the second code last night (until 2 am), with numerous errors that I had to work through to get to this point, and now I'm frustrated.

FWIW, I'm using Visual Studio 17 on Win10. Any suggestions, tips, pointers, etc. would be greatly appreciated.

20190210 EDIT: Revised code:

 using System;
using System.Threading;

namespace Quiz
{
    class Program
    {
        static void Main(string[] args)
        {
            //start the quiz by telling the student the details of the structure of the quiz and the subject being tested
            Console.WriteLine("Kenneth Myers, ENGR115, Assignment: Checkpoint 4 & 5");
            Console.WriteLine("You are about to take a 10 question quiz on Binary Number Systems.");
            Console.WriteLine("Each question will be displayed with either a True/False or Multiple-choice answer key. Select the correct answer by pressing the corresponding key.");
            Console.WriteLine("If you get the question wrong, you will be notified of the wrong answer and the next question will be displayed.");
            Console.WriteLine("Once all questions have been displayed once, questions answered incorrectly will be displayed in the original order; you may attempt the question again.");
            Console.WriteLine("After all missed questions have been displayed a second time and answered, the results of your quiz will be displayed, by category of question and number answered correctly, and the total number answered correctly.");
            Thread.Sleep(5000);//adds a 5 second delay before the next operation to give the user time to read the instructions
            Console.Clear(); //clears the screen before starting the test
            //create an array with all the questions and possible answers to display to the user
            var questions = new string[] { "Question 1: True or False – Binary numbers consist of a sequence of ones and zeros? Press T or F and enter to submit", "Question 2: Multiple choice – Add the following binary numbers: 1011+0011. Answers: 1) 1110, 2) 1022, 3) 1010, 4) 1032. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 3: Multiple choice – Add the following binary numbers: 11011011+01100110. Answers: 1) 11000001, 2) 11111111, 3) 12111121, 4) 101000001. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 4: True or False – Binary numbers are base-10? Press T or F and enter to submit", "Question 5: Multiple choice – Subtract the following binary numbers: 1110-0101. Answers: 1) 1010, 2) 1001, 3) 1000, 4) 0100. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 6: Multiple choice – Subtract the following binary numbers: 10010011-01101100. Answers: 1) 01101111, 2) 00010111, 3) 00100111, 4) 11011101. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 7: True or False – Binary numbers are base-2? Press T or F and enter to submit", "Question 8: Multiple choice – the binary number 1011 equates to what base-10 number? Answers: 1) 11, 2) 22, 3) 14, 4) 7. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 9: Multiple choice – what is the binary equivalent of the base-10 number 127? Answers: 1) 01101111, 2) 11111111, 3) 10111011, 4) 11111110. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 10: True or False: an 8-bit binary number can have a maximum value of 128 in base-10? Press T or F and enter to submit" };
            var questionAnswer = new string[] { "t", "1", "4", "f", "2", "3", "t", "1", "2", "f" };//creating array of correct answers
            var questionInput = new string[10];//create the input variables for each question to accept user input in an array
            var questionStatus = new string[] { "n", "n", "n", "n", "n", "n", "n", "n", "n", "n" };//create question status array to track if the question was answered correctly the first time
            var questionType = new string[] { "tf", "mc", "mc", "tf", "mc", "mc", "tf", "mc", "mc", "tf" };//define the question types (tf or mc) in an array
            var questionIteration = 0;//set the question iteration globally
            var questionCount = 0;//set the question count globally
            var trueFalseCount = 0; var multipleChoiceCount = 0; //sets the true/false counter and multiple choice counters to zero
            //start the quiz - display each question, in order starting at question 1, and accept the user input for that question, then display the user input and move to the next question
                Console.Clear();//clear the screen
                for (questionIteration = 1; questionIteration < 3; questionIteration++)//set up a for loop to run 2 iterations of the questions
                {
                    questionCount = 0;
                    if (questionIteration == 2)
                {
                    Console.WriteLine("Second attempt. Previously incorrectly answered questions will be displayed again. Good luck!");
                }
                    foreach (string question in questions)//foreach loop to handle each question and the answer input by the user, plus logic to test for invalid and correct/incorrect answers
                    {
                        if (questionStatus[questionCount] == "n")//first attempt at the question
                        {
                            Console.WriteLine(question); //displays the question, starting with question 1
                            if (questionType[questionCount] == "tf")//logic for true/false questions
                            {
                                questionInput[questionCount] = InvalidTrueFalseEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                questionInput[questionCount] = CheckForCorrectAnswer();//checks for correct answer
                            }
                            else if (questionType[questionCount] == "mc")//logic for multiple choice questions
                            {
                                questionInput[questionCount] = InvalidMultipleChoiceEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                questionInput[questionCount] = CheckForCorrectAnswer();//checks for correct answer
                            }
                            Console.Clear();//clear the screen
                        }
                        //else if (questionStatus[questionCount] == "y")
                        //{
                        //Console.WriteLine("Second attempt!");//tell the user it's their second attempt
                        //}
                        questionCount++;//increment the question counter for the next iteration
                    }
                }
            Console.WriteLine("Test Complete!");//tells user the test is over
            Console.WriteLine("You answered " + trueFalseCount + " T/F questions correctly and " + multipleChoiceCount + " multiple choice questions correctly.");//tells user their performance
            Console.WriteLine("You missed " + (4 - trueFalseCount) + " T/F questions and " + (6 - multipleChoiceCount) + " multiple choice questions.");
            Thread.Sleep(5000); Console.Clear();//clear the screen
            string InvalidMultipleChoiceEntry()//this method will check multiple choice answers to ensure they are a number 1-4
            {
                var answer = Console.ReadLine();
                if (answer != "1" && answer != "2" && answer != "3" && answer != "4")//did the user input a numner between 1 and 4?
                {
                    Console.WriteLine("Invalid answer type (not 1-4), try again.");//if not, try again until they do!
                    return InvalidMultipleChoiceEntry();
                }
                return answer;
            }
            string InvalidTrueFalseEntry()//this method will check true/false answers to ensure input was a "t" or an "f"
            {
                var answer = Console.ReadLine();//get the user input
                if (answer != "t" && answer != "f")//did the user input a t or f?
                {
                    Console.WriteLine("Invalid answer type (not t or f), try again.");//if not, try again until they do!
                    return InvalidTrueFalseEntry();
                }
                return answer;
            }
            string CheckForCorrectAnswer()//this method will check the answer to see if it is correct or not, if the entry was valid for the questionType
            {
                var answer = questionInput[questionCount];
                if (answer != questionAnswer[questionCount])//tests for incorrect answer given from a valid input by question type
                {
                    Console.WriteLine("Your answer was: " + questionInput[questionCount]); //displays the answer chosen by the user
                    Console.WriteLine("Sorry, wrong answer. :-(");
                    Thread.Sleep(2000);
                    questionStatus[questionCount] = "n";//make sure the question status reflects "n"
                    return answer;
                }
                else //it must be correct, since we've checked against invalid and incorrect answers!
                {
                    Console.WriteLine("Your answer was: " + questionInput[questionCount]); //displays the answer chosen by the user
                    Console.WriteLine("Correct answer!");
                    questionStatus[questionCount] = "y";
                    if (questionType[questionCount] == "tf")
                    {
                        trueFalseCount++;//increment the true/false counter to total the number answered correctly
                    }
                    else
                    {
                        multipleChoiceCount++;//increment the multiple choice counter to total the number answered correctly
                    }
                    Thread.Sleep(2000);
                    return answer; 
                }
            }
        }
    }
}
using System;
using System.Threading;

namespace Quiz
{
    class Program
    {
        static void Main(string[] args)
        {
            //start the quiz by telling the student the details of the structure of the quiz and the subject being tested
            Console.WriteLine("Kenneth Myers, ENGR115, Assignment: Checkpoint 4 & 5");
            Console.WriteLine("You are about to take a 10 question quiz on Binary Number Systems.");
            Console.WriteLine("Each question will be displayed with either a True/False or Multiple-choice answer key. Select the correct answer by pressing the corresponding key.");
            Console.WriteLine("If you get the question wrong, you will be notified of the wrong answer and the next question will be displayed.");
            Console.WriteLine("Once all questions have been displayed once, questions answered incorrectly will be displayed in the original order; you may attempt the question again.");
            Console.WriteLine("After all missed questions have been displayed a second time and answered, the results of your quiz will be displayed, by category of question and number answered correctly, and the total number answered correctly.");
            Thread.Sleep(5000);//adds a 5 second delay before the next operation to give the user time to read the instructions
            Console.Clear(); //clears the screen before starting the test
            //create an array with all the questions and possible answers to display to the user
            var questions = new string[] { "Question 1: True or False – Binary numbers consist of a sequence of ones and zeros? Press T or F and enter to submit", "Question 2: Multiple choice – Add the following binary numbers: 1011+0011. Answers: 1) 1110, 2) 1022, 3) 1010, 4) 1032. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 3: Multiple choice – Add the following binary numbers: 11011011+01100110. Answers: 1) 11000001, 2) 11111111, 3) 12111121, 4) 101000001. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 4: True or False – Binary numbers are base-10? Press T or F and enter to submit", "Question 5: Multiple choice – Subtract the following binary numbers: 1110-0101. Answers: 1) 1010, 2) 1001, 3) 1000, 4) 0100. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 6: Multiple choice – Subtract the following binary numbers: 10010011-01101100. Answers: 1) 01101111, 2) 00010111, 3) 00100111, 4) 11011101. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 7: True or False – Binary numbers are base-2? Press T or F and enter to submit", "Question 8: Multiple choice – the binary number 1011 equates to what base-10 number? Answers: 1) 11, 2) 22, 3) 14, 4) 7. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 9: Multiple choice – what is the binary equivalent of the base-10 number 127? Answers: 1) 01101111, 2) 11111111, 3) 10111011, 4) 11111110. Select the number (1,2,3 or 4) of the correct answer and enter to submit", "Question 10: True or False: an 8-bit binary number can have a maximum value of 128 in base-10? Press T or F and enter to submit" };
            var questionAnswer = new string[] { "t", "1", "4", "f", "2", "3", "t", "1", "2", "f" };//creating array of correct answers
            var questionInput = new string[10];//create the input variables for each question to accept user input in an array
            var questionStatus = new string[] { "n", "n", "n", "n", "n", "n", "n", "n", "n", "n" };//create question status array to track if the question was answered correctly the first time
            var questionType = new string[] { "tf", "mc", "mc", "tf", "mc", "mc", "tf", "mc", "mc", "tf" };//define the question types (tf or mc) in an array
            var questionIteration = 0;//set the question iteration globally
            var questionCount = 0;//set the question count globally
            var trueFalseCount = 0; var multipleChoiceCount = 0; //sets the true/false counter and multiple choice counters to zero
            //start the quiz - display each question, in order starting at question 1, and accept the user input for that question, then display the user input and move to the next question
                Console.Clear();//clear the screen
                for (questionIteration = 1; questionIteration < 3; questionIteration++)//set up a for loop to run 2 iterations of the questions
                {
                    questionCount = 0;
                    if (questionIteration == 2)
                {
                    Console.WriteLine("Second attempt. Previously incorrectly answered questions will be displayed again. Good luck!");
                }
                    foreach (string question in questions)//foreach loop to handle each question and the answer input by the user, plus logic to test for invalid and correct/incorrect answers
                    {
                        if (questionStatus[questionCount] == "n")//first attempt at the question
                        {
                            Console.WriteLine(question); //displays the question, starting with question 1
                            if (questionType[questionCount] == "tf")//logic for true/false questions
                            {
                                questionInput[questionCount] = InvalidTrueFalseEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                questionInput[questionCount] = CheckForCorrectAnswer();//checks for correct answer
                            }
                            else if (questionType[questionCount] == "mc")//logic for multiple choice questions
                            {
                                questionInput[questionCount] = InvalidMultipleChoiceEntry(); //accepts user input for answer to question and stores in variable; later, passes input to method to test if valid input type
                                questionInput[questionCount] = CheckForCorrectAnswer();//checks for correct answer
                            }
                            Console.Clear();//clear the screen
                        }
                        //else if (questionStatus[questionCount] == "y")
                        //{
                        //Console.WriteLine("Second attempt!");//tell the user it's their second attempt
                        //}
                        questionCount++;//increment the question counter for the next iteration
                    }
                }
            Console.WriteLine("Test Complete!");//tells user the test is over
            Console.WriteLine("You answered " + trueFalseCount + " T/F questions correctly and " + multipleChoiceCount + " multiple choice questions correctly.");//tells user their performance
            Console.WriteLine("You missed " + (4 - trueFalseCount) + " T/F questions and " + (6 - multipleChoiceCount) + " multiple choice questions.");
            Thread.Sleep(5000); Console.Clear();//clear the screen
            string InvalidMultipleChoiceEntry()//this method will check multiple choice answers to ensure they are a number 1-4
            {
                var answer = Console.ReadLine();
                if (answer != "1" && answer != "2" && answer != "3" && answer != "4")//did the user input a numner between 1 and 4?
                {
                    Console.WriteLine("Invalid answer type (not 1-4), try again.");//if not, try again until they do!
                    return InvalidMultipleChoiceEntry();
                }
                return answer;
            }
            string InvalidTrueFalseEntry()//this method will check true/false answers to ensure input was a "t" or an "f"
            {
                var answer = Console.ReadLine();//get the user input
                if (answer != "t" && answer != "f")//did the user input a t or f?
                {
                    Console.WriteLine("Invalid answer type (not t or f), try again.");//if not, try again until they do!
                    return InvalidTrueFalseEntry();
                }
                return answer;
            }
            string CheckForCorrectAnswer()//this method will check the answer to see if it is correct or not, if the entry was valid for the questionType
            {
                var answer = questionInput[questionCount];
                if (answer != questionAnswer[questionCount])//tests for incorrect answer given from a valid input by question type
                {
                    Console.WriteLine("Your answer was: " + questionInput[questionCount]); //displays the answer chosen by the user
                    Console.WriteLine("Sorry, wrong answer. :-(");
                    Thread.Sleep(2000);
                    questionStatus[questionCount] = "n";//make sure the question status reflects "n"
                    return answer;
                }
                else //it must be correct, since we've checked against invalid and incorrect answers!
                {
                    Console.WriteLine("Your answer was: " + questionInput[questionCount]); //displays the answer chosen by the user
                    Console.WriteLine("Correct answer!");
                    questionStatus[questionCount] = "y";
                    if (questionType[questionCount] == "tf")
                    {
                        trueFalseCount++;//increment the true/false counter to total the number answered correctly
                    }
                    else
                    {
                        multipleChoiceCount++;//increment the multiple choice counter to total the number answered correctly
                    }
                    Thread.Sleep(2000);
                    return answer; 
                }
            }
        }
    }
}
added 10602 characters in body
Source Link
MX372
  • 41
  • 3
Loading
deleted 19 characters in body; edited tags
Source Link
200_success
  • 144.2k
  • 22
  • 188
  • 473
Loading
edited tags
Link
IEatBagels
  • 12.4k
  • 3
  • 47
  • 99
Loading
Source Link
MX372
  • 41
  • 3
Loading