continue进入下一次循环中的键盘输入问题

最近在学习java基础,跟着做练习,发现一个continue进入下一次循环的问题,源代码如下:


import java.util.Scanner;

public class AnnualSalary {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("*******薪水计算器*******");
         while (true) {
            System.out.println("请输入您的用户名:");
            String name = sc.nextLine();
            System.out.println("请输入您的月薪:");
            int msalary = sc.nextInt();
            System.out.println("请输入您每年发几个月薪水:");
            int month = sc.nextInt();
            double ysalary = msalary * month;
            System.out.println("用户名:" + name);
            System.out.println("输入66直接计算下一位年薪,输入其他数字系统继续进行");
            int comm1=sc.nextInt();
            if (comm1==66){
                continue;
            }
            if (ysalary > 200000) {
                System.out.println("恭喜你超越98%的国人");
            } else if (ysalary > 100000) {
                System.out.println("恭喜你超越90%的国人");
            }
            System.out.println("您的年薪是:" + ysalary);
            System.out.println("输入88退出系统,输入其他数字系统继续进行");
            int comm2 = sc.nextInt();
            if (comm2==88){
                System.out.println("退出系统");
                break;
            }
        }
    }
}

如果运行在continue处选择跳出进入下一次循环,则下次循环开始无法录入用户名,如图:

img

猜测是nextLine()的问题,所以把录入用户名的步骤删除,结果如图:

img

因此我想知道有没有什么办法在跳出本次循环进入下一次循环的时候,可以重新录入字符串(String)的内容

在 continue; 上面 用 nextLine() 再接收一下 nextInt() 输入的换行符, 不然的话这个换行就被用户名的nextLine接收了

if (comm1==66){
    sc.nextLine();
    continue;
}