저는 언젠가는이 일에 매달 렸고 누군가가 나를 안내 할 수 있는지 궁금해하고있었습니다. 사용자가 문자를 입력 할 수있게하려는 경우 스위치 케이스 중 하나와 일치하지 않으면 계속해서 사용자에게 질문해야합니다. 내 코드는 그 부분을 잘 처리한다. 이 문제는 사용자가 올바른 문자를 입력하려고 시도하고 내 코드가 특정 사례 대신 기본값을 계속 출력 할 때 발생합니다. 도움이 될 것입니다. 는사용자가 올바른 문자를 입력 할 때도 계속 반복합니다.
while(!flag){
switch (endChar) {
case 'T':
case 't':
modFlags[0] = true;
flag = true;
break;
case 'P':
case 'p':
modFlags[1] = true;
flag = true;
break;
case 'W':
case 'w':
modFlags[2] = true;
flag = true;
break;
case 'L':
case 'l':
modFlags[3] = true;
flag = true;
break;
case 'I':
System.out.print("sd");
fileName = updateFileName(sc, fileName);
flag = true;
break;
case 'i':
fileName = updateFileName(sc, fileName);
flag = true;
break;
case 'O':
case 'o':
break;
case 'D':
case 'd':
break;
case 'M':
case 'm':
modeBoth = true;
flag = true;
break;
case 'H':
case 'h':
showMenu = false;
flag = true;
break;
default:
System.out.println("Unknown Option.");
System.out.print("Enter action: ");
sc.next();
break;
// flag = false;
}
}
어디에서'endChar'를 업데이트합니까? 루프를 돌 때마다 업데이트해야합니다. 너 지금 그걸 놓치고있어. –
한 문자가 다른 메서드 (promptMenu)에서 반환되고 endChar에 할당됩니다. 그게 끝 문자를 업데이 트하지 않는 이유는 그것이 다시 같은 문자를 인쇄 계속하지만 나는 그 안에 다른 모든 것을 인쇄 promptMenu 메서드를하지 않고 endChar를 업데이 트하는 방법을 잘 모르겠다. – JRob