설정된 여러 기능(Array 메소드 같은..)을 사용하지 않고, 요구사항에 맞게 설하도록
1-1.
//// 1. 클래스 선언
//// 2. 메모리에 클래스 올리기
//// new Student()
//// 3. 메모리에 올린 후 주소를 담는다
//// ss = new Student();
//// 4. ss의 주소타입을 써준다
//// Student ss = new Student()
int a = 10;
int[] arr = { 1, 2, 3 };
Student ss = new Student();
// 메모리에 Student 클래스 올려주고 메모리에 주소 반환
// new로 불러와야 사용이 가능하다
ss.name = "홍길동";
}
class Student {
// 클래스 선언만으로 메모리에 자동 등록 x
String name;
int jumsu;
}
1-2. 조금 더 '형태만' 확인해볼까요
public class Home {
public static void main(String[] args) {
Shape[] shA = new Shape[5];
//클래스 shape 배열 크기 5개
//shape 클래스의 참조변수를 담아둘 배열 선언
}
}
class Shape {
//Shape 클래스
}
-iiA 배열을 5개 선언, 키보드로 입력 받아 배열에 넣어 출력
public class Home {
public static void main(String[] args) {
int[] iiA = new int[5];
// int 형의 배열 iiA을 만든다
// new로 선언하고 배열은 5칸으로 설정
Scanner sc = new Scanner(System.in);
for (int i = 0; i < iiA.length; i++) {
// iiA의 길이만큼만 돌아라
System.out.println("정수를 입력해주세요");
iiA[i] = sc.nextInt();
}
for (int i = 0; i < iiA.length; i++) {
System.out.print(iiA[i] + " ");
// 저장된 iiA배열을 순서대로 하나씩 출력
}
}
}
+숫자 중 10이 넘는 수만 출력
public class Home {
public static void main(String[] args) {
int[] iA = new int[5];
int sum = 0;
double avg = 0;
Scanner sc= new Scanner(System.in);
System.out.println("정수 5개 입력");
for (int i=0; i<iA.length; i++) {
//iA의 칸 수만큼 돌아라
iA[i] = sc.nextInt();
sum += iA[i];
// 스캐너로 입력받아서 iA 배열에 넣고
// 배열에 넣으면서 sum 에 차곡차곡 더해 넣기
if (iA[i] >= 10) {
//만약 10보다 큰수가 배열에 들어온다면
System.out.println("10이 넘는 수 : " + iA[i]);
}
}
for (int i = 0; i<iA.length; i++) {
avg = (double) sum / iA.length;
}
System.out.println("평균 : " +avg);
System.out.println("합 : " + sum);
}
}
public class Home{
public static void main(String[] args) {
System.out.println("숫자 5개 중 가장 큰 수는?");
int[] num = new int[5];
int out = num[0];
//변수 선언과 배열 크기 지정
Scanner sc = new Scanner(System.in);
for(int i = 0; i<num.length; i++) {
//num 크기만큼 돌면서 스캐너로 입력받기
num[i] = sc.nextInt();
if(num[i]>out) {
out = num[i];
//입력받은 수가 이전 값이 저장된
//out에 있는 수보다 크다면
//지금 num[i]의 값으로 숫자 교체
}
}
System.out.println("가장 큰 수 : "+ out);
}
}
public class Home{
public static void main(String[] args) {
int[] num = new int[5];
for(int i=0; i<num.length-1; i++) {
for (int j=0; j<num.length-1-i; j++) {
if(num[j] > num[j+1]) {
int tmp = num[j];
num[j] = num[j+1];
num[j+1] = tmp;
}
}
}
}
}
public class Home {
public static void main(String[] args) {
boolean[] boA = new boolean[5];
int passCnt = 0;
for (int i = 0; i < boA.length; i++) {
String oxTxt = JOptionPane.showInputDialog("정답은 'true' 오답은 'false' 입력");
boA[i] = Boolean.parseBoolean(oxTxt);
}
for (int i = 0; i < boA.length; i++) {
System.out.print(boA[i] + " ");
}
for (int i = 0; i < boA.length; i++) {
if (boA[i]) {
passCnt++;
}
}
System.out.println("\n맞은 갯수 : " + passCnt);
System.out.println("점수 : " + passCnt * 20);
}
}
-왜 결과가 이상하지
public class Home {
public static void main(String[] args) {
// 4명 입력받아 배열에 넣기
Scanner sc = new Scanner(System.in);
String[] per = new String[4];
for (int i = 0; i < per.length; i++) {
System.out.println("이름을 입력해주세요");
System.out.print(">");
per[i] = sc.next();
}
System.out.println("명단 출력");
for (int i = 0; i < per.length; i++) {
System.out.println(per[i] + " ");
}
System.out.println("----------------------------------");
System.out.println("명단에 있는지 확인");
String[] name = new String[4];
for (int j = 0; j<name.length; j++) {
System.out.println("이름 입력해주세요");
System.out.print(">");
name[j] = sc.next();
}
for (int i = 0; i<per.length; i++) {
if(per[i].equals(name[i])) {
System.out.println(name[i] + " 은(는) 명단에 있습니다.");
} else {
System.out.println(name[i] + " 은(는) 명단에 없습니다.");
}
}
}
}
}
for (int i = 0; i<per.length; i++) {
if(per[i].equals(name[i])) {
System.out.println(name[i] + " 은(는) 명단에 있습니다.");
} else {
System.out.println(name[i] + " 은(는) 명단에 없습니다.");
}
}
마지막에 있는 이 부분이 문제였다. 저런식으로 돌리면 per 1번에 있는 이름과 name 1번에 있는 이름만을 비교하게 된다
(per - name)
1. 영희 - 철수
2. 철수 - 영희
이런식으로 저장되어 둘 다 명단에 있음에도 불구하고 명단에 없다고만 출력되는 것이다.
for (int i = 0; i < per.length; i++) {
for (int j = 0; j < name.length; j++) {
if (name[i].equals(per[j])) {
System.out.println(name[i] + " 은(는) 명단에 있습니다.");
break;
} else {
System.out.println(name[i] + " 은(는) 명단에 없습니다.");
break;
}
}
}
for (int i = 0; i < per.length; i++) {
for (int j = 0; j < name.length; j++) {
if (name[i].equals(per[j])) {
System.out.println(name[i] + " 은(는) 명단에 있습니다.");
break;
}
}
}
그래서 else를 빼주었다. 결과가 깔끔하다.