Sformułowanie if

0

Witam czy istnieje jakiś sposób żeby w łatwiejszy sposób ustawić if'a?

class Program
{
static void Main(string[] args)
{
czworokat czwo = new czworokat();
czwo.pierwszyBok = 50;
czwo.drugiBok = 50;
czwo.trzecbiok = 50;
czwo.czwartyBok = 20;
czwo.CzyRomb();
Console.ReadKey();
}

    class czworokat
    {
       public int pierwszyBok ;
        public int drugiBok ;
        public int trzecbiok ;           
        public int czwartyBok ;
        

        public void CzyRomb()
        {
            if (pierwszyBok == drugiBok && drugiBok == trzecbiok && trzecbiok == czwartyBok && pierwszyBok>0 && drugiBok>0 && trzecbiok>0 && czwartyBok>0)
            {
                Console.WriteLine("Jest rombem i wszystkie boki sa dodatnie");
            }

            else
            {
                Console.WriteLine("Nie jest rombem lub boki sa ujemne ");
            }
           

        }

    }

Program ma za zadanie sprawdzić czy wszystkie boki są równe i czy nie są ujemne. (Wiem że powinienem osobno dodać elae od)

1

skoro mają być równe, to wystarczy tylko jedno sprawdzenie czy bok jest większy od zera

  if (pierwszyBok == drugiBok && drugiBok == trzecbiok && trzecbiok == czwartyBok && pierwszyBok>0)
1

Skoro badasz czy boki są równe, to wystarczy sprawdzić czy tylko jeden z nich jest większy od 0;

0

using System;
using System.Linq;

public class Program
{
class Czworokat
{
public int pierwszyBok {
set {
boki[0] = value;
}
}
public int drugiBok {
set {
boki[1] = value;
}
}
public int trzecbiok {
set {
boki[2] = value;
}
}
public int czwartyBok {
set {
boki[3] = value;
}
}

	private int[] boki = new int[4];
	
    public void CzyRomb()
    {
        if (CzyBokiSaRowne() && CzyWszystkieBokiSaNieujemne())
        {
            Console.WriteLine("Jest rombem i wszystkie boki sa dodatnie");
        }

        else
        {
            Console.WriteLine("Nie jest rombem lub boki sa ujemne ");
        }
    }
	
	private bool CzyBokiSaRowne() {
		return boki.ToList().Distinct().Count()==1;
	}
	
	private bool CzyWszystkieBokiSaNieujemne() {
		return !boki.ToList().Any(e => e < 0);	
	}
}

public static void Main()
{
	var czwo = new Czworokat();
	czwo.pierwszyBok = 50;
	czwo.drugiBok = 50;
	czwo.trzecbiok = 50;
	czwo.czwartyBok = 50;
	czwo.CzyRomb();
}

}

0

OT, sorry. Takie tam przy niedzieli

Czy może istnieć obiekt czworokąt bez przypisania boków (pusty konstruktor)?
Czy może istnieć czworokąt z dowolnymi długościami boków (brak jakiejkolwiek kontroli czy z wpisanych długości da się zamknąć czworokąt)?
Po co są osobne settery dla boków? Można ustawić tylko 3 a nie ustawiać jednego?

Gdyby był konstruktor (int, int, int, int) to od razu można by sprawdzać w konstruktorze czy wartości boków są > 0 i czy to są poprawne długości boków dla czworoboku.

0

Gdzie mogę więcej poczytać o tym

private bool CzyBokiSaRowne() {
       return boki.ToList().Distinct().Count()==1;
   }

   private bool CzyWszystkieBokiSaNieujemne() {
       return !boki.ToList().Any(e => e < 0);

1 użytkowników online, w tym zalogowanych: 0, gości: 1