A washing machine comprising: a motor connected to a drum for rotating the drum; a motor-driving unit for supplying operating power to the motor to operate or stop the motor and to control a rotational speed of the motor; a current-sensing unit for measuring current of the motor during operation of the motor; and a controller for transmitting a control command for controlling the motor to the motor-driving unit in order to determine an amount of laundry contained in the drum and determining the amount of laundry based on a current value received from the current-sensing unit, characterized in that the motor-driving unit is configured to control the motor such that the rotational speed of the motor is repeatedly maintained, accelerated, and decelerated within a predetermined range of speed in response to the control command, and the controller is configured to distinguish from each other the current values received from the current-sensing unit in a maintenance period, in which the rotational speed of the motor is maintained, an acceleration period, and a deceleration period, which are distinguished based on rotation of the motor, and separately analyzes the current values during the maintenance period, the acceleration period and the deceleration period to calculate the amount of laundry, wherein the deceleration period is shorter than the acceleration period, wherein the controller is configured to primarily determine the amount of laundry, upon primarily determining that the amount of laundry is small having a weight less than a reference weight, the controller is configured to finish a determination as to the amount of laundry, and upon primarily determining that the amount of laundry is not small, the controller is configured to change a rotational direction of the motor and secondarily determines the amount of laundry. a motor connected to a drum for rotating the drum; a motor-driving unit for supplying operating power to the motor to operate or stop the motor and to control a rotational speed of the motor; a current-sensing unit for measuring current of the motor during operation of the motor; and a controller for transmitting a control command for controlling the motor to the motor-driving unit in order to determine an amount of laundry contained in the drum and determining the amount of laundry based on a current value received from the current-sensing unit, characterized in that the motor-driving unit is configured to control the motor such that the rotational speed of the motor is repeatedly maintained, accelerated, and decelerated within a predetermined range of speed in response to the control command, and the controller is configured to distinguish from each other the current values received from the current-sensing unit in a maintenance period, in which the rotational speed of the motor is maintained, an acceleration period, and a deceleration period, which are distinguished based on rotation of the motor, and separately analyzes the current values during the maintenance period, the acceleration period and the deceleration period to calculate the amount of laundry, wherein the deceleration period is shorter than the acceleration period, wherein the controller is configured to primarily determine the amount of laundry, upon primarily determining that the amount of laundry is small having a weight less than a reference weight, the controller is configured to finish a determination as to the amount of laundry, and upon primarily determining that the amount of laundry is not small, the controller is configured to change a rotational direction of the motor and upon primarily determining that the amount of laundry is small having a weight less than a reference weight, the controller is configured to finish a determination as to the amount of laundry, and upon primarily determining that the amount of laundry is not small, the controller is configured to change a rotational direction of the motor and secondarily determines the amount of laundry.