public class If_Switch_Project {
public static void main(String[] args) {
//kor, eng, math 값은 Scanner 이용해 직접 입력받기
int kor, eng, math;
String name;
Scanner sc = new Scanner(System.in);
System.out.println("이름을 입력하세요 : ");
name = sc.nextLine();
System.out.print("국어 점수를 입력하세요 : ");
kor = sc.nextInt();
System.out.print("영어 점수를 입력하세요 : ");
eng = sc.nextInt();
System.out.print("수학 점수를 입력하세요 : ");
math = sc.nextInt();
System.out.println("-------------------------");
System.out.printf("이름\t국어\t영어\t수학\n");
System.out.printf("%s\t %d\t %d\t %d\n", name, kor, eng, math);
System.out.println("-------------------------");
int sum = kor + eng + math;
float avg = sum/3.0f;
String hakjum = null;
//if문을 이용해 등급 나누기
if (avg >= 90) {
System.out.println("1등급입니다.");
}else if (avg >= 80) {
System.out.println("2등급입니다.");
}else if (avg >= 70) {
System.out.println("3등급입니다.");
}else if (avg >= 60) {
System.out.println("4등급입니다.");
}else if (avg >= 50) {
System.out.println("5등급입니다.");
}else {
hakjum = "9등급입니다.";
}
//switch문을 이용해 등급 나누기
switch ((int)avg/10) {//switch 옆에는 정수, 문자, 문자열만 올 수 있다. 실수는 올 수 없다.
case 10 : hakjum = "1등급"; break;
case 9 : hakjum = "2등급"; break;
case 8 : hakjum = "3등급"; break;
case 7 : hakjum = "4등급"; break;
case 6 : hakjum = "5등급"; break;
case 5 : hakjum = "6등급"; break;
default : hakjum = "9등급";
}
System.out.printf("총점 : %d\n", sum);
System.out.printf("평균 : %.2f\n", avg);
System.out.printf("등급 : %s\n", hakjum);
sc.close();
}
}
if와 switch문을 이용한 성적의 총점, 평균, 등급을 구해보았다.
머릿속으로는 어떻게 할지 시나리오를 짜놨는데 디테일하게 안짜서 그런지 순서대로 술술 코드가 짜지지 않았다. 변수 만들었다가 코드 짜고 다시 변수 만들고 약간 이렇게 뒤죽박죽? 다음에는 순서를 어떻게할지 시나리오를 확실하게 짜고 넘어가는 연습도 해야겠다.
출력값:

//for문을 이용하여 짝수의 합계 구하기
int sum = 0;
int y;
for(y=1; y<=10; y+=2) {
sum = sum + y;
System.out.println(sum);
}
System.out.println("");
출력값:

//for문을 이용하여 홀수, 짝수의 합계 구하기
int one = 0; //홀수
int two = 0; //짝수
int i = 0;
for(i=1; i<=10; i++) {
if(i%2 == 0) {
two = two + 1;
}else {
one = one + i;
}
}
System.out.println("짝수의 합 :" + two);
System.out.println("홀수의 합 :" + one);
출력값:

//짝수만 출력
int jjak;
for (jjak = 0; jjak < 10; jjak += 2) {
System.out.println("짝: " + jjak);
}
//홀수만 입력
int holl = 0;
for (holl = 0; holl < 10; holl += 2) {
System.out.println("홀: " + holl);
}
for문 {} 할 때 괄호 닫고 중괄호 전에 세미콜론을 붙여서 문장이 제대로 출력이 안됐다.
System.out.println 문장을 for문 중괄호 닫고 그 뒤에 넣으니까 한 줄만 출력된다.for문을 사용할때 세미콜론과 중괄호의 위치 잘 살피자...
간단한 방법 1.
int i, j;
for(i = 0; i < 5; i++){
System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.println(); //이 식에서는 println이 중괄호 밖으로 나가면 *이 다 이어져서 출력되니 주의
}
i = 0,1,2,3,4 이렇게 5회 진행된다.
print로 출력했기 때문에 저 다섯문장이 모두 이어져서 출력된다 ex)"*****"

간단한 방법을 for문 이용해서 할 수 있는 방법 2.
for(i = 0; i < 5; i++) {
for(j = 0; j < 5; j++) {
System.out.print("*");
}
System.out.println(); //이 식에서는 중괄호 밖이 아닌 안에 있으면 모든 *이 다 줄바꿈해서 나
}
}
}
for (i = 0; i < 5; i++) {
for (j = 0; j < i + 1; j++) {
System.out.print("*");
}
System.out.println();
}

System.out.println("--------------");
for(i = 0; i < 5; i++) {
for(j = 0; j < 4 - i; j++) { //*
System.out.print(" ");
}
for (int k = 0; k <= i; k++) {
System.out.print("*");
}
System.out.println();
}

공백을 써야하는 이유는 첫줄: 공백 4번 + 별/ 두번째 줄: 공백 3번 + 별 두개 > 이런식이기 때문
*에서는 j < = 4 가 되면 0,1,2,3,4 로 5개의 공백을 가지게 되므로 j < 4가 되어야한다.
항상 숫자의 시작은 0임을 명심하자
시나리오
1 . a * b 를 해야하니 a 와 b의 변수를 만든다.
변수 생성 후 a가 1일때 9까지 더해질 수 있도록 for문을 만든다.
b가 a와 곱해질때 9까지 더해질 수 있도록 a for문 안에 b for문을 만들어준다.
b for문 안에 a * b = sum 의 형태로 출력되도록 만든다.
int i, j;
for(i = 1; i < 10; i++) {
for(j = 1; j < 10; j ++) {
System.out.printf("%d * %d = %d\n", i, j, (i*j));
}
System.out.println();
}

/* 시나리오
1. 스캐너 출력하기
2. 변수 생성하기
3. 질문 출력하기
4. 질문 입력해오기
5. 1~9까지 곱해질 수 있는 변수 생성하기
6. for문 이용해서 변수가 1씩 더해질 수 있도록 만들기
7. [ 단 x 수 = 곱한 수 ] 형식으로 출력되게 하기
*/
Scanner sc = new Scanner(System.in);
int dan;
System.out.println("몇 단을 출력할까요? : ");
dan = sc.nextInt();
System.out.println("----------");
for (int a = 1; a < 10; a++) {
System.out.printf("%d x %d = %d\n", dan, a, dan*a);
구구단 만들 때 저 for문이 뭔가 잘못되었었는지 수가 1씩 안 더해지고 그냥 10만 계속 곱해졌다. 육안으로 봤을때는 진짜 다른게 없었는데 뭐가 문제인지 알 수가 없다.. 결국 다시 작성해서 완성시켜줬다.

for(int alpha = 65; alpha <= 90; alpha++) {
System.out.println((char)alpha);
}

char ch;
for(ch = 'A'; ch <= 'Z'; ch++) {
System.out.print(ch);
}

println이 아닌 print로 출력하면 이렇게 줄 바꿈 없이 가로로 출력
int i, j;
for(i = 1; i <= 9; i++) {
for(j = 1; j <=9; j++) {
System.out.println(i + "x" + j + "=" + i * j);
}
System.out.println("-------------------");
}
- for문을 이용해서 구구단 1~9단까지 가로로 출력하기
for (i = 1; i <= 9; i++) {
for(j = 1; j <= 9; j++) {
System.out.printf("%d %d = %d", i, j, i j);
}
System.out.println("-------------------"); //출력이 각 줄 오른쪽 끝에 출력된다.
}