package příklady;

/*******************************************************************************
 * Třída Sbl_Třída slouží k ...
 *
 * @author    Rudolf Pecinovský
 * @version   0.00.000,  0.0.2003
 */
public class BlokPříkazů
{
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================
//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================
//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ TŘÍDY ========================================
//== OSTATNÍ METODY TŘÍDY ======================================================

    /***************************************************************************
     * První verze metody, která vrátí informaci o tom,
     * ležíl-li hodnota jejího prostředního parametru
     * mezi hodnotami zbylých dvou.
     */
    public static void blok_1()
    {
        int hodnota = -1;
        System.out.println("\f");
        if( hodnota < 0 )
        {
            String menší = " - hodnota je menší než nula!";
            System.out.println("Uvnitř: hodnota=" + hodnota + menší );
        }
        System.out.println("Vně: dvojnásobek=" + 2*hodnota );
    //    System.out.println("Vně: menší=" + menší );
    }


    /***************************************************************************
     * První verze metody, která vrátí informaci o tom,
     * ležíl-li hodnota jejího prostředního parametru
     * mezi hodnotami zbylých dvou.
     */
    public static void blok_2()
    {
        int hodnota = -1;
        System.out.println("\f");
        if( hodnota <= 0 )
        {
            String menší = " - hodnota je menší nebo rovna nula!";
            System.out.println("Uvnitř: hodnota=" + hodnota + menší );
            
            if( hodnota < 0 )
            {
                String mocMalá = "Je dokonce záporná";
                int i = 0;
                System.out.println( "Ještě hůř - " + mocMalá );
                
                {
                    //Jen si tu na chvíli něco deklaruji
                    int číslo = 5;
                    System.out.println( "Zcela uvnitř je číslo " + číslo );
                }
    //             System.out.println( "Nedosažitelné proměnná: " + číslo );        
            }
    //         System.out.println( "Nedosažitelná proměnná: " + mocMalá );        
        }
        System.out.println("Vně: dvojnásobek=" + 2*hodnota );
    //     System.out.println("Vně: menší=" + menší );
    }


    /***************************************************************************
     * První verze metody, která vrátí informaci o tom,
     * ležíl-li hodnota jejího prostředního parametru
     * mezi hodnotami zbylých dvou.
     */
    public static void blok_E()
    {
        int hodnota = -1;
        System.err.println("\f");
        if( hodnota < 0 )
        {
            System.err.println("Před vyhozením výjimky");
            RuntimeException rte = new RuntimeException();
            System.err.println( "" + rte );
            System.err.println("======================");
            rte.printStackTrace( System.err );
//             System.err.println("Po vyhození výjimky");
            throw rte;
        }
        System.err.println("Za podmíněným příkazem" );
    }


    
////Následuje další blok příkazů
//{
//    String zcelaUvnitř = "Teď jsem ještě víc uvnitř";
//    System.out.println( zcelaUvnitř );
//}


    /***************************************************************************
     * Druhá verze metody, která vrátí informaci o tom,
     * ležíl-li hodnota jejího prostředního parametru
     * mezi hodnotami zbylých dvou.
     */
    public boolean mezi2( int a, int x, int b )
    {
        return ((a < x)  &&  (x < b))  ||      //  a < x < b
               ((b < x)  &&  (x < a));         //  b < x < a
    }



//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================

    /***************************************************************************
     * Implicitní konstruktor třídy Třída
     */
    public BlokPříkazů()
    {
    }



//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ =====================================
//== PŘEKRYTÉ METODY IMPLEMENTOVANÝCH ROZHRANÍ =================================
//== PŘEKRYTÉ ABSTRAKTNÍ METODY RODIČOVSKÉ TŘÍDY ===============================
//== PŘEKRYTÉ KONKRÉTNÍ METODY RODIČOVSKÉ TŘÍDY ================================
//== NOVĚ ZAVEDENÉ METODY INSTANCÍ =============================================
//== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== VNOŘENÉ A VNITŘNÍ TŘÍDY ===================================================
//== TESTY A METODA MAIN =======================================================
}

