728x90
반응형
문제1
public static void main(String[] args) {
String str1 = "자바";
String str2 = new String("자바");
if(str1=str2){ // 문자열 비교
// 문자열이 같다면 출력
System.out.println(str1+"과 "+str2+"는 같은 문자열입니다.");
}
}
- 다음 main() 메소드의 if문이 실행되도록 수정하시오.
▶ 고칠 점
== 연산자는 비교하고자 하는 대상의 주소 값을 비교하기 때문에 두 문자열이 같지 않다고 나온다.
equals 메소드는 비교하고자 하는 두 대상의 값 자체를 비교하기 때문에 문자열의 값을 비교할 수 있다.
▶ 수정한 코드
문자열은 equals()로 내용을 비교해야 한다
public static void main(String[] args) {
String str1 = "자바";
String str2 = new String("자바");
if(str1.equals(str2)){ // 문자열 비교
// 문자열이 같다면 출력
System.out.println(str1+"과 "+str2+"는 같은 문자열입니다.");
}
}
▶ 출력 결과
자바과 자바는 같은 문자열입니다.
문제2
- 5단을 제외한 2단부터 9단까지의 구구단을 출력하시오.
for(int i=2;i<=9;i++){ //2단부터 출력
if(i==5) //5단 출력 X
continue;
System.out.println("<"+i+"단>");
for (int j=1; j<=9; j++)
System.out.println(i+"*"+j+"="+i*j);
System.out.println(); //줄바꿈
}//i_outer_for
문제3
- [3, 5, 2, 9, 8] 배열의 0 번째 인덱스 값과 최댓값의 위치를 변경하시오.
▶ 코드
int arr[] = {3, 5, 2, 9, 8};
//최댓값의 인덱스 찾기
int maxIndex=0;
for(int i=1;i<arr.length;i++)
if(arr[maxIndex]<arr[i])
maxIndex=i;
//0번째 인덱스 값과 최댓값의 위치 변경
if(maxIndex!=0){ //maxIndex의 값이 처음과 같이 0이라면 위치를 변경할 필요없음
int temp = arr[maxIndex];
arr[maxIndex] = arr[0];
arr[0] = temp;
}
System.out.println("결과 : "+Arrays.toString(arr));
▶ 출력 결과
결과 : [9, 5, 2, 3, 8]
문제4
- 랜덤 구구단 문제를 5번 반복하시오.
- 맞으면 정답, 틀리면 오답.
▶ 코드
Random rand = new Random();
Scanner scan = new Scanner(System.in);
for(int i=0;i<5;i++){ //구구단 5번 반복
int num1 = rand.nextInt(8)+2; //2단~9단
int num2 = rand.nextInt(9)+1; //1~9
int gugudan = num1*num2;
System.out.print((i+1)+"번 문제 : "+num1+"*"+num2+"=");
int check = scan.nextInt();
if(check==gugudan)
System.out.println("정답입니다.");
else
System.out.println("오답입니다.");
}
scan.close(); //OS flthtm 낭비 방지
▶ 출력 결과
1번 문제 : 4*5=5
오답입니다.
2번 문제 : 3*4=12
정답입니다.
3번 문제 : 3*2=6
정답입니다.
4번 문제 : 7*1=8
오답입니다.
5번 문제 : 2*1=2
정답입니다.
문제5
- ArrayList에 값을 넣고, 점수들의 총합을 출력하시오.
▶ 코드
public class TestNum05 {
static int setValue(Scanner scan, String str){
System.out.print(str+" 점수를 입력하세요 >> ");
int num;
while(true){
num = scan.nextInt();
if(str.equals("자바")){
if(num<0 || num>30)
System.out.print("0부터 30 사이의 값을 입력하세요 >> ");
else
break;
} else if(str.equals("오라클")){
if(num<0 || num>50)
System.out.print("0부터 50 사이의 값을 입력하세요 >> ");
else
break;
} else if(str.equals("html")){
if(num<0 || num>20)
System.out.print("0부터 20 사이의 값을 입력하세요 >> ");
else
break;
}
}//while_end
return num;
}
public static void main(String[] args) {
ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
while(true){
Scanner scan = new Scanner(System.in);
System.out.print("1.입력, 2.삭제, 3.출력 (그 외의 값은 종료) : ");
int num = scan.nextInt();
if(num==1){
//입력 부분
HashMap<String, Object> map = new HashMap<String, Object>();
System.out.print("이름을 입력하세요 >> ");
map.put("name",scan.next());
map.put("java",setValue(scan,"자바"));
map.put("oracle",setValue(scan,"오라클"));
map.put("html",setValue(scan,"html"));
list.add(map);
} else if(num==2){
//삭제 부분
System.out.print("삭제할 이름 >> ");
String s = scan.next();
for(int i=0;i<list.size();i++){
if(s.equals(list.get(i).get("name"))){
list.remove(i);
break;
} else
System.out.println("해당 정보와 일치하는 사람이 없어 삭제되지 않았습니다.");
}
} else if(num==3){
//출력 부분
for(int i=0;i<list.size();i++){
System.out.print("이름:"+list.get(i).get("name"));
int num1 = (int)list.get(i).get("java");
int num2 = (int)list.get(i).get("oracle");
int num3 = (int)list.get(i).get("html");
System.out.println(", 총점:"+(num1+num2+num3));
}
} else{
//종료 부분
System.out.println("프로그램을 종료합니다.");
break;
}
System.out.println(); //줄바꿈
}//while_end
}//main_end
▶ 출력 결과
1.입력, 2.삭제, 3.출력 (그 외의 값은 종료) : 1
이름을 입력하세요 >> 홍길동
자바 점수를 입력하세요 >> 50
0부터 30 사이의 값을 입력하세요 >> 30
오라클 점수를 입력하세요 >> 30
html 점수를 입력하세요 >> 30
0부터 20 사이의 값을 입력하세요 >> 20
1.입력, 2.삭제, 3.출력 (그 외의 값은 종료) : 3
이름:홍길동, 총점:80
1.입력, 2.삭제, 3.출력 (그 외의 값은 종료) : 5
프로그램을 종료합니다.
728x90
반응형
'HRD_훈련 > JAVA' 카테고리의 다른 글
[JAVA] JAVA와 SQL 테이블을 이용한 JDBC (24일차) (0) | 2023.06.19 |
---|---|
[SQL] JOIN 실습 3 (21일차) (2) | 2023.06.14 |
[JAVA] StringBuffer, StringTokenizer, Calendar (18일차) (0) | 2023.06.09 |
[JAVA] Iterator (17일차) (0) | 2023.06.08 |
[JAVA] ★ Vector, ArrayList, HashMap ★ (16일차) (0) | 2023.06.07 |