2015-10-25 3 views
0

Я смог понять это, но есть ли у кого-нибудь более эффективный способ подсчета до 10 и только распечатать коэффициенты в PL/SQL?count to 10 only odds PL/SQL

DECLARE 

v_count integer := 0; 
v_num integer := 1; 


BEGIN 
WHILE V_NUM <=8 
    LOOP 

     EXIT WHEN v_count = 10; 
     v_num := v_num + 1; 

     IF (v_num MOD 2) = 1 
     THEN v_count := v_count + 1; 
      dbms_output.put_line(v_num); 
     END IF; 

    END LOOP; 

END; 

ответ

1
DECLARE 
    v_num integer; 
BEGIN 
    FOR v_num IN 1..10 LOOP 
     IF (v_num MOD 2) = 1 THEN 
      dbms_output.put_line(v_num); 
     END IF; 
    END LOOP; 
END; 
/

Или, если вы хотите, чтобы свести к минимуму число итераций цикла (вы то на самом деле не считая 10 больше):

DECLARE 
    v_num integer; 
BEGIN 
    FOR v_num IN 0..4 LOOP 
     dbms_output.put_line(v_num*2+1); 
    END LOOP; 
END; 
/
+0

Хороший ответ. Я бы назвал вторую версию «если вы хотите минимизировать петлевые взаимодействия». – Turophile

+0

Спасибо, обновил текст в соответствии с вашим предложением. – trincot

+0

Интересно, спасибо, что показал мне другой путь! – brentos93