簡體   English   中英

代碼在使用 Visual Studio 代碼的 c# 中意外運行

[英]Code is working unexpectedly in c# using visual studio code

我是 c# 的初學者,我想創建一個簡單的計算器。 我已經編寫了所有代碼,它沒有顯示任何錯誤,但是,它沒有正確顯示。 這是我正在使用的所有代碼:

using System;
namespace C_
{
    class Program
    {
        static void Main(string[] args)
        {
           Console.Title = "Calculator"; 

            float num1;
            float num2;
            float resultSum;
            float resultSub;
            float resultProd;
            float resultDiv;


            Console.Write("Enter your first number ");
             
            num1 = Convert.ToInt32(Console.Read());
            num2 = Convert.ToInt32(Console.Read());

            resultSum = num1 + num2;
            Console.Write("The sum is " + resultSum);

            resultSub = num1 - num2;
            Console.Write("The differnce is " + resultSub);

            resultProd = num1 * num2;
            Console.Write("The product is " + resultProd);

            resultDiv = num1 / num2;
            Console.Write("The quotient is " + resultDiv);


            Console.ReadKey();
        }
            
    }
}

當我在沒有調試的情況下運行它時,控制台顯示:

這是我在沒有調試的情況下運行代碼時顯示的內容

https://docs.microsoft.com/en-us/dotnet/api/system.console.writeline?view=netcore-3.1

如果將Console.Write...替換為Console.WriteLine... ,它將在打印語句的末尾添加換行符,因此您的輸出應如下所示:

The sum is 63
The difference is 37 
...

您的代碼使用控制台鍵值,而不是您輸入的數值。 2的consolekey是50,return的consolekey是13。

不確定我是否會使用float作為類型。 特別是因為您要轉換為int32 我在你的程序中加入了一些不同的技術。 因為你只是在學習這些是很好的事情要知道。 我在代碼的注釋中提供了解釋。

    static void Main(string[] args)
    {
        Console.Title = "Calculator";

        // No need to put the type multiple times
        // Just use a comma to separate the names
        int num1, num2, resultSum, resultSub, resultProd, resultDiv;


        Console.WriteLine("Enter your first number:");

        // This is just a label
        Num1Entry:
        try
        {
            num1 = Convert.ToInt32(Console.ReadLine());
        }
        // This exception is for when you don't get a number from the user. i.e. num1 = a
        catch (FormatException)
        {
            Console.WriteLine("Not a number. Please enter a valid number.");
            // This will jump your program back to the beginning of the try-catch so you can enter a valid number for num1
            goto Num1Entry;
        }
        // This exception is for when the number is out of range for the data type. i.e. num1 = 2147483648 is too big for an int data type.
        catch (OverflowException)
        {
            Console.WriteLine("Invalid number. Please enter a valid number.");
            // This will jump your program back to the beginning of the try-catch so you can enter a valid number for num1
            goto Num1Entry;
        }


        Console.WriteLine("Enter your second number:");

        // This is just a label
        Num2Entry:
        try
        {
            num2 = Convert.ToInt32(Console.ReadLine());
        }
        // This exception is for when you don't get a number from the user. i.e. num2 = a
        catch (FormatException)
        {
            Console.WriteLine("Not a number. Please enter a valid number.");
            // This will jump your program back to the beginning of the try-catch so you can enter a valid number for num2
            goto Num2Entry;
        }
        // This exception is for when the number is out of range for the data type. i.e. num2 = 2147483648 is too big for an int data type.
        catch (OverflowException)
        {
            Console.WriteLine("Invalid number. Please enter a valid number.");
            // This will jump your program back to the beginning of the try-catch so you can enter a valid number for num2
            goto Num2Entry;
        }

        resultSum = num1 + num2;
        Console.WriteLine("The sum is " + resultSum);

        resultSub = num1 - num2;
        Console.WriteLine("The differnce is " + resultSub);

        resultProd = num1 * num2;
        Console.WriteLine("The product is " + resultProd);

        // if num2 = 0 you will get an exception.
        // Use a try-catch to keep your program from failing.
        try
        {
            resultDiv = num1 / num2;
            Console.WriteLine("The quotient is " + resultDiv);
        }
        catch (DivideByZeroException)
        {
            Console.WriteLine("You cannot divide by 0");
        }


        
        Console.ReadKey();
    }

暫無
暫無

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

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