1. 문자열에서 반복문으로 공백 빼서 출력하기
출력 결과 / 요구 사항:
" world 세계 "
=> "world세계"로 변환하기
코드 작성
String str = " world 세계 ";
String str_result_for = "";
for(int i = 0; i<str.length(); i++) {
if(str.charAt(i) != ' ') {
str_result_for += str.charAt(i);
}
}
int i = 0;
while(i<str.length()) {
if(str.charAt(i) != ' ') {
str_result_for += str.charAt(i);
}
i++;
}
int i =0;
do {
if(str.charAt(i) != ' ') {
str_result_for += str.charAt(i);
}
i++;
} while(i<str.length());
System.out.println("시작/" + str_result_for + "/끝");
2. 성적결과 구하기
출력 결과 / 요구 사항:
=== 이순신님의 성적결과 ===
1. 학번 : 01564699
2. 성명 : 이순신
3. 국어 : 30
4. 영어 : 40
5. 수학 : 50
6. 총점 : 120
7. 평균 : 40.0
8. 학점 : F
9. 선물 : 꿀밤3대
1. 국어, 영어, 수학은 0~100까지의 숫자만 받음
2. 선물은 누적됨(A면 놀이공원 이용권,스타벅스 이용권,맘스터치 이용권)
코드
public class Sungjuk2 {
String hakbun;
String name;
int kor;
int eng;
int math;
int total;
double avg;
char grade;
String gift;
public boolean isTrue(String str) {
int number = Integer.parseInt(str);
if(0 <= number && number <= 100) {
return true;
} else {
System.out.println("입력하신" + str + "은 올바른 데이터가 아닙니다.");
System.out.println("점수는 0~100까지만 입력하세요!!");
return false;
}
}
public void total() {
total = kor + eng + math;
}
public void avg() {
avg = total / 3.0;
}
public void grade() {
if (avg > 90) {
grade = 'A';
} else if (avg > 80) {
grade = 'B';
} else if (avg > 60) {
grade = 'C';
} else if (avg > 40) {
grade = 'D';
} else {
grade = 'F';
}
}
public void gift() {
gift = "";
switch (grade) {
case 'A' :
gift += "놀이공원 이용권,";
case 'B' :
gift += "스타벅스 기프티콘,";
case 'C' :
gift += "맘스터치 이용권,";
case 'D' :
gift += "아이스크림";
break;
default :
gift = "꿀밤 1대";
}
}
public void print() {
total();
avg();
grade();
gift();
System.out.println("===" + name + "님의 성적결과 ======");
System.out.println("1. " + hakbun + "\n" +
"2. 성명 : " + name + "\n" +
"3. 국어 :" + kor + "\n" +
"4. 영어 :" + eng + "\n" +
"5. 수학 :" + math + "\n" +
"6. 총점 :" + total + "\n" +
"7. 평균 :" + Math.round(avg * 10)/10.0 + "\n" +
"8. 학점 :" + grade + "\n" +
"9. 선물 :" + gift
);
}
public class Main_sungujk2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Sungjuk2 sj = new Sungjuk2();
System.out.print("1. 학번: ");
sj.hakbun = sc.nextLine();
System.out.print("2. 성명: ");
sj.name = sc.nextLine();
String inputStr = "";
try {
System.out.print("3. 국어: ");
inputStr = sc.nextLine();
if (!(sj.isTrue(inputStr))) {
sc.close();
return;
} else {
sj.kor = Integer.parseInt(inputStr);
}
System.out.print("4. 수학: ");
inputStr = sc.nextLine();
if (!(sj.isTrue(inputStr))) {
sc.close();
return;
} else {
sj.math = Integer.parseInt(inputStr);
}
System.out.print("5. 영어: ");
inputStr = sc.nextLine();
if (!(sj.isTrue(inputStr))) {
sc.close();
return;
} else {
sj.eng = Integer.parseInt(inputStr);
}
sj.print();
} catch (NumberFormatException e) {
System.out.println(inputStr +" 이 아닌 숫자를 입력하세요.");
}
}
}
3. 성적결과 구하기
출력 결과 / 요구 사항:
1+2+3+4+5+6+7+8+9+10=55
1 부터 10 까지의 누적의 합계 : 55
코드:
public static void main(String[] args) {
int sum = 0;
String str = "";
for (int i = 1; i < 11; i++) {
sum += i;
String add = (i<10)? "+":"=";
str += i + add;
}
System.out.print(str + sum);
}
}