Stránka 1 z 1

Pomoc s javou, náhodný den v týdnu

Napsal: 06 pro 2012 19:06
od eda220
Dobrý den, dělám si cvičení do školy z Javy (v NetBeansech). Mám vytvořit metodu, která vrátí náhodný den v týdnu.

Vím, že mám chybu někde již v podmínkách, ale navíc mi to hází chybu i u hlavní metody. Poradil byste někdo ? Děkuji

► Zobrazit spoiler

Re: Pomoc s javou, náhodný den v týdnu

Napsal: 06 pro 2012 19:24
od faraon
Nebylo by místo toho if if if lepší použít jeden switch?

Re: Pomoc s javou, náhodný den v týdnu

Napsal: 06 pro 2012 19:30
od eda220
Zkusím to, switch jsme zatím neprobírali. A ještě, co mám špatně v té hlavní metodě jak volám metodu den1 ? Díky

Re: Pomoc s javou, náhodný den v týdnu

Napsal: 07 pro 2012 08:45
od CZechBoY
protože to voláš přes třídu nikoliv přes instanci třídy..
použij den1.den(0);

máš tam překlep u Pondělí...
já bych tohle udělal přes pole na 2 řádky, no což, nějak se začít musí :-)
rozhodně je však lepší použít if-else if než if if if if if if if (haha faraone, napsal jsem o jeden if víc a ještě k tomu stejnej počet :D )

Re: Pomoc s javou, náhodný den v týdnu

Napsal: 08 pro 2012 06:40
od faraon
Tak pokud je každá větev toho switche ukončená breakem, tak se chová v podstatě stejně jako if else if, akorát je to mnohem přehlednější.
Ještě by se dalo použít pole stringů, a číslem dne rovnou ukázat na jeho název ;-)

Re: Pomoc s javou, náhodný den v týdnu

Napsal: 12 pro 2012 16:45
od eda220
Děkuji všem moc za radu, nakonec jsem to vyřešil takto, sice složitě, ale funguje :

► Zobrazit spoiler

Re: Pomoc s javou, náhodný den v týdnu

Napsal: 12 pro 2012 16:50
od CZechBoY
co tam je složitýho?
dej tam if + else if

Re: Pomoc s javou, náhodný den v týdnu

Napsal: 12 pro 2012 21:53
od eda220
Hmm, a jak by se změnil kód při použití else ? Děkuji

Re: Pomoc s javou, náhodný den v týdnu  Vyřešeno

Napsal: 12 pro 2012 22:34
od CZechBoY
if + else if

Kód: Vybrat vše

package b13Nahodnyden;

import java.util.Random;

public class b13Nahodnyden {
   public static void main(String[] args) {
      Random random = new Random();
      int x = random.nextInt(7) + 1;

      if (x == 1) {
         System.out.println("Pondělí");
      }
      else if (x == 2) {
         System.out.println("Utery");
      }
      else if (x == 3) {
         System.out.println("Streda");
      }
      else if (x == 4) {
         System.out.println("Ctvrtek");
      }
      else if (x == 5) {
         System.out.println("Patek");
      }
      else if (x == 6) {
         System.out.println("Sobota");
      }
      else if (x == 7) {
         System.out.println("Nedele");
      }
   }
}

switch

Kód: Vybrat vše

package b13Nahodnyden;

import java.util.Random;

public class b13Nahodnyden {
   public static void main(String[] args) {
      Random random = new Random();
      int x = random.nextInt(7) + 1;
      
      switch(x) {
         case 1:
            System.out.println("Pondělí");
            break;
         case 2:
            System.out.println("Utery");
            break;
         case 3:
            System.out.println("Streda");
            break;
         case 4:
            System.out.println("Ctvrtek");
            break;
         case 5:
            System.out.println("Patek");
            break;
         case 6:
            System.out.println("Sobota");
            break;
         case 7:
            System.out.println("Nedele");
         break;
         default:
            System.out.printIn("Tento den neznam");
            break;
      }
   }
}

přes pole

Kód: Vybrat vše

package b13Nahodnyden;

import java.util.Random;

public class b13Nahodnyden {
   public static void main(String[] args) {
      Random random = new Random();
      int x = random.nextInt(7) + 1;
      String[] dny = {"Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota", "Neděle"};
      if(x > 0 && x <= 7) {
         System.out.printIn(dny[x-1]);
      } else {
         System.out.printIn("Tento den neznam");
      }
   }
}

Re: Pomoc s javou, náhodný den v týdnu

Napsal: 13 pro 2012 21:08
od eda220
Děkuji, ten else if bych ještě zvládnul. V poli se vyznám, jen switch zatím neznám, ale vypadá to zajímavě. Snad se to časem naučíme. Díky všem, uzavírám.