사용자가 입력한 값에 따라 크기가 다른 구구단을 계산해 출력한다.
예를 들어 19를 입력하면 십구십구단(2 x 1에서 19 x 19)을 계산해 출력한다.
import java.util.Scanner;
public class {
public static void main(String[] args) {
System.out.println("몇 단까지?");
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
int[] result = new int[number];
for (int i=2; i<=result.length; i++) {
for (int j=0; j<result.length; j++) {
result[j] = i * (j + 1);
}
for (int j=0; j<result.length; j++) {
System.out.println(result[j]);
}
System.out.println();
}
}
}
지금까지는 배열의 크기가 정해져 있었다면 이번에는 배열의 크기가 입력값에 따라 달라지도록 코드를 짰다. 이렇게 해야지만 입력한 숫자만큼 곱할 수 있다.
이 방법 말고 메소드를 이용해서 코드를 짜보려고 했지만 잘 안되었다. 내가 해서 안되는건지, 원래 안되는 문제인지 조차 가늠할 수가 없어서 안타깝다. 실력을 빨리 길러서 답은 모르더라도 가능한지 아닌지 정도는 알 수 있었음 좋겠다.
사용자가 입력한 값에 따라 크기가 다른 구구단을 계산해 출력한다.
예를 들어 사용자가 "8,7"과 같은 문자열을 입력하면 팔칠단을 구현한다. 팔칠단은 2 1 ... 2 7, 3 1 ... 3 7, ... , 8 1 ... 8 7 까지 구현하는 것을 의미한다.
import java.util.Scanner;
public class GUgudan {
public static void main(String[] args) {
System.out.println("몇 단, 몇까지?");
Scanner scanner = new Scanner(System.in);
String inputValue = scanner.nextline();
String[] splitValue = inputValue.split(",");
int first = Integer.parseInt(splitValue[0]);
int secont = Integer.parseInt(splitValue[1]);
int[] result = new int[second];
for (int i =2; i<=first; i++) {
for (int j=0; j<second; j++) {
result[j] = i * (j + 1);
}
for (int j=0; j<second; j++) {
System.out.println(result[j]);
}
System.out.println();
}
}
}
정수형 변수를 생성할 때 int와 nextInt()를 사용한 것과 달리 문자형 변수를 생성해야 하므로 String과 nextline()을 사용하였다.
문자를 입력받을 때 띄어쓰기를 모두 포함한 문자를 리턴하는 것이 nextline이고 띄어쓰기 전까지 리턴하는 것이 next이다.
inputValue를 ,를 기준으로 나누어서 splitValue라는 문자형 배열을 생성해서 그 곳에 저장한다는 의미이다.
문자를 숫자형으로 바꿔주는 함수이다. 여기서는 입력값으로 문자를 받았으므로 parseint를 사용하여 숫자형으로 바꾸는 작업을 한 것이다.