To prevent a sudden increase or a drop in engine revolution caused by mistaken learning by making more optimal a limit to the renewal of a learning correction amount.
Upper and lower limit values A and B are set by adding/ subtracting specified values L1 and L2 to or from a learning correction value ISCLR when an engine key switch is turned ON (S21 to S22). Under a specified learning condition, based on a deviation ΔISCI between the average value ISCIave of a feedback control amount and a target feedback control amount ISCIset, the learning correction amount ISCLRC is renewed (S24 to S28) and the learning correction amount ISCLRC after the renewal is regulated between the upper and lower limit values A and B (S29 to S32) and then rewritten (S33).
TANAKA TAKESHI