2017-10-12 3 views
0

나는이 질문에 대한이 답변의 문제점을 파악하려고 노력해 왔습니다. 정말 도움이 필요해! 어떤 도움을 주셔서 감사합니다! 감사합니다JAVA - For 루프 및 If else 문

질문

  • 두 개의 int 치의 입력 할 수 있습니다 (A와 B), 및
  • 프로그램이 다수의 B 경우 a<b Number에서 인쇄됩니다.
  • a>b 인 경우 프로그램은 b에서 a로 인쇄됩니다.
  • b is the same as a 인 경우 프로그램은 a와 같지 않을 때까지 다른 번호 b를 입력하도록 사용자에게 요청합니다.

    Scanner sc = new Scanner(System.in); 
    System.out.println("Enter a: "); 
    int a = sc.nextInt(); 
    System.out.println("Enter b: "); 
    int b = sc.nextInt(); 
    
    if(a > b) { 
        for(int i = b; b >= a; b--) { 
         System.out.println(b); 
        } 
    } else if (a < b) { 
        for(int i = a; a <= b; a++) { 
         System.out.println(i); 
        } 
    } else { 
        System.out.println("Enter another number b: "); 
        int numberb = sc.nextInt(); 
    } 
    

    }

답변

5


내가 멀리 떨어져 작동되지 않았다 현재 시도에 약간의 수정을했다. 먼저 ab과 같지 않을 때까지 b 번호를 입력하라는 메시지를 계속 표시하기 위해 루프를 사용합니다. 뚜렷한 ab을 얻은 다음, 단일 루프를 수행하여 양 끝에서 최소값에서 최대 값까지 범위의 범위를 인쇄합니다.

Scanner sc = new Scanner(System.in); 
System.out.println("Enter a: "); 
int a = sc.nextInt(); 
int b; 
do { 
    System.out.println("Enter b: "); 
    b = sc.nextInt(); 
} while (b == a); 

for (int i=Math.min(a, b); i <= Math.max(a,b); ++i) { 
    System.out.println(i); 
} 
+0

'while (true)'이고'break'는 'good-practice'가 아닙니다. do/while이 만들어졌습니다 :) – azro

+0

@azro 리팩토링 덕분에 불필요한 코드가 한 줄 삭제되었습니다. 이제 모든 것을 단 한 줄의 람다 (;)로 대체하는 방법을 생각해 봅시다. –

0

당신의 루프 반복은 잘못된 것입니다. 당신의 제 3의 조건을 위해 나는 약간 수정했다. 코드를 변경합니다

public class test { 
    public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 
     test t = new test(); 
     System.out.println("Enter a: "); 
     int a = sc.nextInt(); 
     System.out.println("Enter b: "); 
     int b = sc.nextInt(); 
     if(a==b) { 
      do { 
       System.out.println("Both are same enter again"); 
       b = sc.nextInt(); 
      }while(a==b); 
      t.loop(a, b); 
     }else { 
      t.loop(a,b); 
     } 
    } 
    void loop(int a, int b) { 
     if(a > b) { 
      for(int i = b; i <= a; i++) { 
       System.out.println(i); 
      } 
     } else if (a < b) { 
      for(int i = a; i <= b; i++) { 
       System.out.println(i); 
      } 
     } 
    } 
} 
1

a의 다른 때까지 사용자가 당신이 do while loop

Scanner sc = new Scanner(System.in); 
System.out.println("Enter a: "); 
int a = sc.nextInt(); 
int b = 0; 
do { 
    System.out.println("Enter b: "); 
    b = sc.nextInt(); 
} while (a == b); 
그런

당신이 간단하게 할 수있는 인쇄 할 때 사용할 수있는 b를 입력 할 수 있도록하려면

for (int i=Math.min(a, b); i <= Math.max(a,b); ++i) { 
    System.out.println(i); 
} 

또는 수정하여 코드 :

if (a > b) { 
    for (int i = b; i <= a; i++) { // i is the index to change 
     System.out.println(i);  // use i 
    } 
} else if (a < b) { 
    for (int i = a; i <= b; i++) { // i is the index to change 
     System.out.println(i);  // use i 
    } 
}