解决 它不再工作了

布朗斯

新成员
已加入
2020年9月2日
留言内容
3
编程经验
Beginner
它工作了1个小时前,但是当我回到家时,它不再工作了
每当有人输入0时,它都应该引发异常,以便他可以立即更新它,除以我不知道是什么,而当我想除以零时,同一个anwser始终为8
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace exception2
{
    class Program
    {
        private const string Value = "Sie haben versucht mit null zu dividieren die zahl wird jetzt automatisch auf 1 gesetzt";

        static void Main(string[] args)
        {
            double zahl1 = 0;
            double zahl2 = 0;
            double zahl3 = 0;

            Console.WriteLine("Bitte geben sie eine Zahl ein");
            zahl1 = Convert.ToDouble(Console.ReadLine());

            try
            {
                Console.WriteLine("Bitte geben sie eine Zweite Zahl ein die nicht NULL oder 0 ist");
                zahl2 = Convert.ToDouble(Console.ReadLine());
            }
            catch (Exception l)
            {
                Console.WriteLine(l.Message);
                Console.WriteLine(Value);
                zahl2 = 1;
                Console.ReadKey();             
            }

            try
            {
                zahl3 = zahl1 / zahl2;
            }
            catch (DivideByZeroException)
            {
                Console.WriteLine("Bitte geben sie eine zahl ein die NICHT 0 ist");

                zahl2 = Convert.ToDouble(Console.ReadLine());

                if (zahl2 == 0)
                {
                    Console.WriteLine("Ich habe gesagt NICHT durch NULL 0 du Vollidiot");
                    Console.WriteLine("Das Programm wird sich jetzt selber schließen");
                    Console.ReadKey();
                    Environment.Exit(0);
                }
                if (zahl2 != 0)
                {
                }
            }

            Console.WriteLine("Der Quotient ist" + " " + zahl3);
            Console.ReadKey();
        }
    }
}
 
由主持人最后编辑:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
通常,不应将异常用于流控制。在尝试除法之前检查零,而不是尝试除法然后捕获异常。

The same is true for your taking in your inputs. You should use TryParse() instead of converting and then catching an exception.
 

布朗斯

新成员
已加入
2020年9月2日
留言内容
3
编程经验
Beginner
我是一个初学者,所以我对C#不太了解。我发来的是老师写在板上的代码。在学校中,它可以在PC和家用系统上运行,这是我的问题,它不起作用
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
The DivideByZero exception is only thrown for integral types and the decimal type. You are getting the expected infinity output since your types are double.

 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,501
地点
悉尼,澳大利亚
编程经验
10+
当我想输入零时,它不会进入异常
那真的太含糊了。您需要具体说明。您需要提供以下内容:
在X行,变量Y和Z的值分别是A和B,我希望C发生,但实际发生的是D。
如果您花时间考虑自己在做什么,期望什么以及实际发生了什么,那么不难提供清晰的解释。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
代码从第37行到第57行。OP希望代码到达第41行。
Screenshot_1.png
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,501
地点
悉尼,澳大利亚
编程经验
10+
代码从第37行到第57行。OP希望代码到达第41行。
我本可以花些力气为自己解决,但要点是,我们每个人都不应该做出努力,得出OP已经知道的事情或互相解释OP应该解释的事情给所有人。这个问题已经解决,因此在这里并没有特别的意义,但是为了所有人的利益,我正在努力使OP将来做得更好。
 
最佳 底部