2017-03-02 1 views
-1

저는 코딩과 java에서 일반적으로 새로 도입되었지만,이 문제를 해결할 수 있기를 기대합니다. do while 루프가 있고 그 안에는 잘못된 값이 스캐너에 입력되면 while 문이 있습니다. 그러나 코드를 실행할 때 올바르지 않거나 옳은지 여부에 관계없이 while 명령을 항상 실행 한 다음 코드를 올바르게 실행합니다.Java : 조건이 false 일 때도 while 루프가 계속 실행 중입니다.

import java.util.Scanner; 
public class Practice { 
public static void main (String [] args) { 
int x = 0; 
int i = 0; 
int n = 0; 
String S1 = ""; 

Scanner user = new Scanner(System.in); 


do 
{ 
    System.out.println("Enter an integer between 1 and 15: "); 
    x = user.nextInt(); 



     while (x < 1 || x > 15); 
     { 
      System.out.println("Incorrect integer. Must be between 1 and 15. Try again: "); 
      x = user.nextInt(); 
     } 

    n = 1; 


} 
while (n != 1); 


for (i = 1; i <= x; i++) 
{ 
    S1 = S1 + "X"; 
} 

for (n = 1; n <= x; n++) 
{ 
    System.out.println(S1); 
} 


    } 


} 

미리 감사드립니다.

+3

제거; 성명의 끝에서 – Satya

+0

@Satya 동안 첫 번째. 두 번째 것은'do/while'을 끝내고 거기에는 세미콜론이 올 바릅니다. – EJP

+0

@EJP, 당신은 바로 선생님입니다. :) 오류에 대해 사과드립니다. – Satya

답변

4

당신의 while 루프 이와 같이

에서 추가 ;을 제거

while (x < 1 || x > 15){ 
      System.out.println("Incorrect integer. Must be between 1 and 15. Try again: "); 
      x = user.nextInt(); 
} 
+1

첫 번째 것에서 만. 두 번째 것은'do/while'을 끝내고 거기에는 세미콜론이 올 바릅니다. – EJP

+0

@turnipdabeets 정말 고마워요, 정말 고마워요. 각 줄의 끝 뒤에 세미콜론을 추가하는 데 문제가 있습니다. 이것은 완벽하게 작동했습니다! –

+0

@GavinWebb 아무런 문제가 없습니다. 기꺼이 도와 드리겠습니다! – Turnipdabeets

2

동안 (X < 1 || X> 15); 세미콜론은 논리를 종료하고 제어는 항상 다음 줄로 넘어갑니다. 코드를 작성할 때주의하십시오. D

0
  1. 잠시 동안 여분의 세미콜론을 제거하십시오.
  2. 또한 스캐너 개체 (사용자)를 닫습니다.

업데이트 된 코드를 확인하십시오.

public class Practice { 
    public static void main(String[] args) { 
     int x = 0; 
     int i = 0; 
     int n = 0; 
     String S1 = ""; 

     Scanner user = new Scanner(System.in); 
     do { 
      System.out.println("Enter an integer between 1 and 15: "); 
      x = user.nextInt(); 

      while (x < 1 || x > 15) 
      { 
       System.out.println("Incorrect integer. Must be between 1 and 15. Try again: "); 
       x = user.nextInt(); 
      } 

      n = 1; 

     } while (n != 1); 

     for (i = 1; i <= x; i++) { 
      S1 = S1 + "X"; 
     } 

     for (n = 1; n <= x; n++) { 
      System.out.println(S1); 
     } 

     user.close(); 

    } 

} 
관련 문제