class Switch {
    public static void main(String args[]) {
        float a = 1.0f; 
        float b = -2.0f;
        float c = -3.0f;
        float d, r0, r1;
        int flag;

	    d = b * b - 4.0f * a * c;  // 判別式
	    flag = (int) ( d / Math.abs( d ) );
	    
	    switch ( flag ) {
	    	case 1 : // 2つの実根
	            d = (float) Math.sqrt( d );
	            r0 = 0.5f * ( -b + d ) / a;
	            r1 = 0.5f * ( -b - d ) / a;
	            System.out.println( "Two real roots = "+r0+", "+r1);
	            break;
	        case -1 : // 2つの虚根
	    	    d = 0.5f * (float) Math.sqrt( -d );
	    	    r0 = -0.5f * b / a;
	    	    r1 = 0.5f * d / a;
	    	    System.out.println( "Two imaginary roots, r = "+r0+", i = "+d);
	    	    break;
	    	default : // 重根
	            r0 = -0.5f * b / a;  
	            System.out.println( "One root = "+r0);
	    } 
     }
} 
