You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# struct实现四边形计算时İslem()的if-else分支未触发问题

代码输入截图

故障原因定位

程序运行后没有触发判定分支的输出,核心是İslem()方法内的条件判断写重复了:

  • 第一个分支判断为if (Ake.Value == Bke.Value),仅在两个边长相等时会被触发
  • 后续的else if分支仍然使用完全相同的判断条件Ake.Value == Bke.Value

这种写法下,当输入的两个边长不相等时,两个判断条件都不成立,所有分支的输出语句都不会被执行,就会出现“程序没进入if-else分支”的现象;只有当两个边长完全相等时,才会触发第一个分支的输出。

补充说明
  • 简化作业场景下,仅判断邻边相等就判定为正方形是可以的;按照严格几何定义,需要先确认四边形是矩形(对边平行且四个角为直角),再满足邻边相等的条件,才能判定为正方形。
  • 浮点数直接使用==做相等判断会受精度误差影响,实际开发中一般会设定一个极小的容差范围,判断两个数值的差值是否在容差范围内,避免输入或计算的精度偏差导致判断失效。
修正后可运行的代码
using System;
public struct Str
{
    private double val;
    public double Value
    {
        get { return val; }
        set { val = value; }
    }
    public double Oku()
    {
        return double.Parse(Console.ReadLine());
    }
}
public struct Dörtgen
{
    Str ak;
    Str bk;
    public Str Ake
    {
        get { return ak; }
        set { ak = value; }
    }
    public Str Bke
    {
        get { return bk; }
        set { bk = value; }
    }
    public void Dörtgen1()
    {
        Str rct = new Str();
        Console.WriteLine("\nenter sides a and be of the square: ");
        Console.Write("A side: ");
        ak.Value = rct.Oku();
        Console.Write("B side: ");
        bk.Value = rct.Oku();
    }
    public void İslem()
    {
        Console.WriteLine("parameter: {0}", (Ake.Value + Bke.Value) * 2);
        Console.WriteLine("area:  {0}\n", Ake.Value * Bke.Value);
        // 修正重复的判断条件,将else if改为else
        if (Ake.Value == Bke.Value)
        {
            Console.WriteLine("this is a square");
        }
        else
        {
            Console.WriteLine("this is not a square");
        }
    }
}
public class Program
{
    static void Main()
    {
        var drg = new Dörtgen();
        drg.Dörtgen1();
        Console.WriteLine();
        Console.WriteLine("parameter and area");
        drg.İslem();
    }
}

内容的提问来源于stack exchange,提问作者Ahmet Alper Kızıltunç

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.26 06:45:02