2016-10-24 1 views
1

그래서 다음을 작성해야합니다. 사용자가 콘솔에 이름을 입력 한 다음 나이를 입력하라는 메시지가 표시되면 그 나이를 입력 한 후 이름을 표시해야합니다. . 그래서 예를 들어 사용자 입력 마이키 나이 입력입니다 : 4 는 인쇄 콘솔 :사용자 입력 이름 시간 연령 나이

public static void main(String[] args) throws IOException { 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     String invoer; 
     String invoer2; 
     System.out.print("Fill in your name:"); 
     invoer = br.readLine(); 
     System.out.print("Fill in your age:"); 
     invoer2 = br.readLine(); 
     System.out.print("" + invoer); 
     System.out.print(" " + invoer2); 
    } 

:
마이키
마이키
마이키
마이키

지금까지 나는 다음과 같은 코드를 만들어 나는 자바에 대해 매우 익숙하지 않기 때문에 문제가 무엇인지 고칠 수 있는지 잘 모르겠습니다. 나는 내가 뭘 잘못하고 있는지 알아보기 위해 그런 코드를 찾고 있었지만 아무 것도 발견하지 못했다.

+0

출력 atm은 무엇입니까? –

+0

귀하의 이름을 기입하십시오 : Mikey 나이를 기입하십시오 : 18 Mikey 18BUILD SUCCESSFUL (총 시간 : 8 초) – Artifacialic

답변

1
public static void main(String[] args) throws IOException { 
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    String invoer; 
    String invoer2; 
    System.out.print("Fill in your name:"); 
    invoer = br.readLine(); 
    System.out.print("Fill in your age:"); 
    invoer2 = br.readLine(); 
    try { 
     for (int i = 0; i < Integer.parseInt(invoer2); i++) { 
      System.out.println(invoer); 
     } 
    } catch (NumberFormatException e) { 
     System.out.println("Age should be a number"); 
     e.printStackTrace(); 
    } 
    System.out.print("" + invoer); 
    System.out.print(" " + invoer2); 
} 

당신은 사용자의 입력에서 번호를 가지고있다. 이는 Integer.parseInt(invoer2)으로 수행 할 수 있습니다. 그러나 입력이 유효한 숫자가 아닌 경우 NumberFormatException을 전달할 수 있습니다.

그러나 Scanner을 사용하는 것이 좋습니다.

public static void main(String[] args) throws IOException { 
    Scanner s = new Scanner(System.in); 
    String invoer; 
    String invoer2; 
    System.out.print("Fill in your name:"); 
    invoer = s.next(); 
    System.out.print("Fill in your age:"); 
    try { 
     invoer2 = s.nextInt(); 
     for (int i = 0; i < invoer2; i++) { 
      System.out.println(invoer); 
     } 
    } catch (InputMismatchException e) { 
     System.out.println("It wasn't valid age"); 
    } 
    System.out.print("" + invoer); 
    System.out.print(" " + invoer2); 
} 
+0

반복되는 인쇄 작업을 위해 for 루프가 필요한 부분을 추가 할 수 있습니다 (코드를 답으로 입력하지 않더라도 작업을 수행하십시오). – GhostCat

+0

@Artifacialic @Artifacialic @Artifacialic 대답 점수 아래 회색 눈금. – xenteros

+0

@GhostCat 내가 선호하는'스캐너 '가 포함 된 솔루션을 추가했습니다. OP가 나머지를하도록하십시오. – xenteros

0

각 나이에 한 번 이름을 인쇄하려면 루프를 사용해야합니다. 하지만 먼저 나이를 입력하는 문자열을 int으로 변환 한 다음 루프의 경계로 사용할 수 있습니다.

public static void main(String[] args) throws IOException { 
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    String invoer; 
    int invoer2; 
    System.out.print("Fill in your name:"); 
    invoer = br.readLine(); 
    System.out.print("Fill in your age:"); 
    invoer2 = Integer.parseInt(br.readLine()); 
    for (int i=0; i < invoer2; ++i) { 
     System.out.print(invoer); 
    } 
} 
+0

나는 이것을 downvoted해야 할 이유가 없습니다. 설명? –

+0

나는 아무 이유도 보지 않는다. 그것은 정확하고 작동합니까 – GameDroids

+0

난 downvote didnt :하지만 당신의 코드가 숫자 서식 문제를 무시 같아요. – GhostCat

관련 문제