나는 면접의 종류 코드를 썼다. 그것은 당신의 성이 얼마나 당신이 과거와 무엇을 요구합니다. 이 두 번째 질문을 출력 후 어떤 이유로 한 .exe가 종료됩니다. 왜 그런 겁니까? 어떻게 그것을 해결할 수 있습니까?
나는 구문을 확인하지만 실수를 찾을 수 없습니다.
수입 때 java.io.IOException;
공용 클래스 Abfrage {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
char Geschlecht;
System.out.println("Wie ist dein Geschlecht? M oder W?");
Geschlecht = (char) System.in.read();
int Alter;
System.out.println("Wie ist dein Alter?");
Alter = (int) System.in.read();
if (Alter >= 18 && Alter <= 100)
{
System.out.println("Du bist volljaehrig, herzlichen Glueckwunsch!");
}
}
}
그것은 ( "알터 데인 위 인도 표준시?")이 문자열을 출력하고 그 후에 종료됩니다. 나는 문제가 println 메소드에 질문입니다 (수) 내 나이에 넣어 수 없습니다.
나는 내 나이에 넣어 수 있도록 기대, 그리고 18에서 100 사이의 나는 경우가 말해해야한다 "성인 인에 축하를." (그것의 더 많은 경우가 있습니다 / 다른 완료되지 않음)
편집 : 내가 만약 다른 문을 추가했습니다. 나는 .EXE를 실행하면 :
if (Alter >= 18 && Alter <= 100)
{
System.out.println("Du bist volljaehrig, herzlichen Glueckwunsch!");
}
else if (Alter >= 0 && Alter <= 17);
{
System.out.println("Du bist leider minderjaehrig mein Kind");
}
내가 이런 짓을 할 때, 그냥 질문 후 다른 경우에 println "두 BIST leider minderjaehrig 소바 종류"출력한다 "알터 데인 위 경악을?". 그것은 그 후 종료됩니다.
설명
당신은 가능성이 입력 보다 한 문자보다.
당신은 예를 들어 클릭 M
남성을위한뿐만 아니라이 공격 버튼을 입력합니다 . 실제 입력은
M\n
뿐 아니라
M
첫 번째는 read
를 읽고 M
두 번째는을 읽는 동안 \n
여전히 있기 때문에, 새로운 입력을 요청하지 않고 읽지 입력 떠났다 .
그래서 Alter
는 IS int
의 값 \n
문자 및 따라서 귀하의 if
블록이 입력되지 않습니다. 그래서 코드가 완벽하게 실행.
해결책
쉬운 등의 입력 독서의 목적을 위해 완전히 개발 된 편리한 클래스가있다 Scanner
( 문서 ).
Scanner scanner = new Scanner(System.in);
System.out.println("Wie ist dein Geschlecht? M oder W?");
String geschlecht = scanner.nextLine();
System.out.println("Wie ist dein Alter?");
int alter = Integer.parseInt(scanner.nextLine());
if (alter >= 18 && alter <= 100) {
System.out.println("Du bist volljaehrig, herzlichen Glueckwunsch!");
}
노트
자바 명명 규칙은 말한다주의 CamelCase를 변수 이름,하지 않는 PascalCase가 . 그래서 당신 Geschlecht
과 Alter
오히려 호출해야 geschlecht
하고 alter
.
또한, 당신은 당신이 그들을 필요가 없으며 이전의 정확한 위치에 당신의 변수를 만들어야합니다. 그래서 대신
char geschlecht;
System.out.println("Wie ist dein Geschlecht? M oder W?");
geschlecht = ...
취하다
System.out.println("Wie ist dein Geschlecht? M oder W?");
char geschlecht = ...
즉 읽기 쉬운 코드를 만들 것입니다.
운영 체제에 따라, 개행 문자는하지 않을 \n
뿐만 아니라 수 있습니다 \n\r
. 이 물건을 직접 처리 할 수 매우 성가신, Scanner
당신을 위해이 모든 것을 할 것입니다.