나는 비 모음의 수와 함께 문자열에있는 모음의 수를 정렬해야하는 학교에서 일하고 있습니다. 선생님은 사용자에게 프로그램을 계속 실행하지 않고 여러 가지 테스트 케이스를 제공 할 수 있도록 계속 진행할 것인지 묻는 것이 필요합니다. 프로그램을 성공적으로 루프에 넣었지만 내 문제는 이전 테스트 케이스의 모음 및 비 모음 번호가 다음 번호로 이어지는 것입니다. 나는 해결책을 찾기 위해 온라인 검색을 해왔지만 지금까지는 운이 없었습니다. 어떤 도움이라도 대단히 감사 할 것입니다. (나는 아직도 많이 배워야, BTW 프로그램에서 멍청한 놈입니다.) 당신은 하나의 객체에 우리의 카운트를 추적 할 수있는 문자열로 키와 Map를 사용do while 루프 (Java)로 데이터를 재설정 할 때의 문제
import java.util.*;
class VowelReader
{
public static void main(String[] args)
{
String line;
int vi= 0, a = 0, e = 0, o = 0, u = 0, nonvowels = 0;
String answer = null;
Scanner scan = new Scanner (System.in);
do {
System.out.println("Enter a String to be processed for vowels: ");
line = scan.nextLine();
for(int i = 0; i < line.length(); i++){
char c = Character.toLowerCase(line.charAt(i));
switch (c)
{
case 'a':
a++;
break;
case 'e':
e++;
break;
case 'i':
vi++;
break;
case 'o':
o++;
break;
case 'u':
u++;
default:
nonvowels++;
break;
}
}
System.out.println(line);
System.out.println("a- " +a);
System.out.println("e- " +e);
System.out.println("i- " +vi);
System.out.println("o- " +o);
System.out.println("u- " +u);
System.out.println("Non-vowels -" +nonvowels);
System.out.println("Continue?(Y/N)");
answer = scan.nextLine();
}
while(answer.toLowerCase().equals("y"));
}
}
말 그대로 루프 끝에서 0으로 설정할 수 있습니다. 더 좋은 방법은 루프 코드를 자신의 함수에 넣고 모음 수를 반환하는 것입니다. – Carcigenicate
그래, 내 무능에 대해 사과하지만 어떻게 그들은 메인에 이미 정의 된 경우 변수를 재설정까요? – Mauser137
코드를 자신의 함수에 넣으면 함수 내에 정의되고 함수가 종료 될 때 자동으로 삭제됩니다. 모음 수의 복사본을'main'에'반환 '하게됩니다. 함수를 사용하여 반환하는 방법을 배웠습니까? – Carcigenicate