持续优化代码，if判断还不够简洁，还需要修改