반나
50
2021-03-18 10:32:53
7
178

도와주세요ㅜㅜ


import java.util.Scanner;

public class test {

public void mult(){

int i,j;

int xdan, ydan;

int start, end;

Scanner scan = new Scanner(System.in);

while(true){

System.out.printf("몇 단 부 터 몇 단 까지 구구단을 출력할까요?(int,int)");

xdan=scan.nextInt();

ydan=scan.nextInt();

System.out.printf("어느 수 부터 어느 수 까지 곱할까요?(int,int)");

start=scan.nextInt();

end=scan.nextInt();

if(xdan!=0 || ydan!=0)

{

for(i=xdan; i<=ydan; i++)

{

for(j=start; j<=end; j++)

{

System.out.print(i + "*" + j + "=" + i*j);

System.out.print('\t');

}

System.out.println();

}

}

else{

System.out.println("시스템 종료");

break;

}

}

}

        구구단 문제인데요

단의 범위와 곱셈의 범위를 모두 입력받아서 출력하고

0 0 이 입력되면 프로그램을 종료합니다.

그런데 단의 범위를 큰수부터 입력하면 구구단을 출력 못해요...

ex) 2~5단 2~5 곱하기 -> 성공

5~2단 2~5곱하기 ->출력x


어떻게 해결할수있을까요?ㅜ

0
  • 답변 7

  • dudgh107
    524
    2021-03-18 10:35:25

    이것은 숙제가 틀림없다

  • 웃지않는광대
    150
    2021-03-18 10:36:50

    숙제가 틀림이 없지만

    힌트를 드리자면 for(i=xdan; i<=ydan; i++) 


    for문을 잘 보시고 해결하시면 될거 같아요


  • 반나
    50
    2021-03-18 10:39:13

    네 숙제라 완전 해결해주시는것보다 실마리라도 잡고싶어서 올렸습니다ㅜ

    복수전공하기 정말 힘드네요ㅜ

  • dudgh107
    524
    2021-03-18 10:43:36

    for문을 보면 돌앋가는 조건이 x단이 y보다 작거나 같을때까지 도는 조건임 즉 현재 로직은 낮은단에서 높은단만 처리가능

    반대 케이스도 처리해야함

  • 웃지않는광대
    150
    2021-03-18 10:44:14

    for문을 2개를 만들어서 하던 ,사전에 체크로직을 넣어서 높고 낮은 숫자를 미리 변수에 담든


    해당로직에 대해서 풀이하는건 사람마다 달라서 


    강제로 가르쳐드리기보단 직접 해결방안을 생각하셔야되요


    개인적으로 그게 제일 중요하다고 보거든요, 툴을 다루고  구현하는 방법은 어떻게든 배우면되겟지만


    문제 해결방법을 머릿속에 구상하는게 정말 필수요소라고 봐요

  • dudgh107
    524
    2021-03-18 10:46:41

    for(초기 로직:반복조건:반복후수행로직)

  • 반나
    50
    2021-03-18 10:50:33

    아 해결했어요! 코드 짧게쓰려고 기를쓰다가 간단한걸 못봤습니다. 두분다 감사합니다

  • 로그인을 하시면 답변을 등록할 수 있습니다.