1 기타 팁
1. 괄호 끝에 주석 달아라
괄호 옆에 어느 부분인지 주석으로 적어주기
2 복습
1. 대입 연산자
package j0510;
import java.util.Scanner;
public class C0510_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 3번
int i = 1;
// i = i+2;
// i+=2;
// ㅑ+=1;
i = i * 5;
i *= 5;
System.out.println(i);
}
}
//// 2번
// char input = ' ';
// Scanner scan = new Scanner(System.in);
// System.out.println("글자를 입력하세요");
// input = scan.next().charAt(0);
// String result = ((input>='a'&&input<='z'))||((input>='A'&&input<='Z'))?"문자입니다":"문자x";
// System.out.println(result);
//
//
//
// 1번
//// 1. 변수선언 2. scan 입력 3. println 출력
// char input = ' ';
// Scanner scan = new Scanner(System.in);
// input = scan.next().charAt(0);
// System.out.println("결과값 : "+input);
//
3 이론
1. 대입연산자
2. if 조건문
3. switch문_범위 지정의 경우
case 한번에 묶어서 쓰는거 기억하기
4. case문 레벨
빨간색 위 부분은 break가 없는데 모든 권한을 준다는 개념으로 받아들이면 됨.
5. for문
* 기억
값의 총 : 55 5050 500500
4 실습
1. if 조건문 _ 삼항연산자
package j0510;
import java.util.Scanner;
public class C0510_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//// 2번
// char input = ' ';
// Scanner scan = new Scanner(System.in);
// System.out.println("글자를 입력하세요");
// input = scan.next().charAt(0);
// String result = ((input>='a'&&input<='z'))||((input>='A'&&input<='Z'))?"문자입니다":"문자x";
// System.out.println(result);
//
//
//
}
}
2. 대입연산자
package j0510;
import java.util.Scanner;
public class C0510_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 3번
int i = 1;
// i = i+2;
// i+=2;
// ㅑ+=1;
i=i*5;
i*=5;
System.out.println(i);
}
}
3. if 조건문
package j0510;
import java.util.Scanner;
public class C0510_02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num = 8;
// (num>=1)?"":""; // 삼항식
if (num>8) {
System.out.println("8입니다.");
}
else {
System.out.println("8이 아닙니다.");
}
}
}
4. if 조건문 - else if (조건이 3개일 경우)
package j0510;
import java.util.Scanner;
public class C0510_02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 2번
// 조건문 3개일 경우
//
int num = 0;
if (num>0) {
System.out.println("양수");
}else if(num==0) {
System.out.println("0입니다.");
}
else {
System.out.println("음수입니다.");
}
}
}
// 1번
// int num = 8;
//// (num>=1)?"":""; // 삼항식
// if (num>8) {
// System.out.println("8입니다.");
// }
// else {
// System.out.println("8이 아닙니다.");
// }
//
5. switch 조건 - 대입 조건문
* 속도가 빠르다
* 다만 비교가 안된다 (>,<와 같은)
package j0510;
import java.util.Scanner;
public class C0510_04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int input = 0;
Scanner scan = new Scanner(System.in);
System.out.println("숫자 입력");
input = scan.nextInt();
switch (input) { // 크다,작다 비교가 안됨
case 1: {
System.out.println("1입니다.");
break;
}
case 6: {
System.out.println("6입니다.");
break;
}
case 9: {
System.out.println("9입니다.");
break;
}
default:
System.out.println("원하는 숫자가 아닙니다.");
break;
}//switch
6. if 조건문 2번 _ 문자열 입력 - 에러나는 것에 대해 // 스킵
package j0510;
import java.util.Scanner;
public class C0510_05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 2번
String input="";
char ch = ' ';
Scanner scan = new Scanner(System.in);
System.out.println("문자열 입력");
// input = scan.next(); // 문자열
ch = scan.next().charAt(0); //문자열의 첫번째 문자
if (ch=='c') {
// equalsIgnoreCase : 대소문자 치환
// if (str=="c") { //기본형 8개 - boolean,char,bytep,short,int,long,float 외에는 비교가 불가능
System.out.println("c 입니다.");
} else {
System.out.println("아닙니다");
}
}
}
7. 중첩 if문
package j0510;
import java.util.Scanner;
public class C0510_05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 문제 2
// 점수 입력 받아, 90점 이상이면 A, 80점 이상이면 B, 70-C, 60-D, F ... 반복
// ++ 97점 이상 A+, 93이하 A-, 87점 이상 B+,
int num = 0;
Scanner scan = new Scanner(System.in);
System.out.println("점수 입력");
num = scan.nextInt();
if (num >= 90) { // 90,91,92....100
System.out.print("A");
if (num >= 97) {
System.out.println("+");
} else if (num <= 93) {
System.out.println("-");
}
} // 조건1
else if (num >= 80) {
System.out.print("B");
if (num >= 87) {
System.out.println("+");
} else if (num >= 83) {
System.out.println("-");
}
}// 조건 2
else if (num >= 70) {
System.out.print("C");
if (num >= 77) {
System.out.println("+");
} else if (num >= 73) {
System.out.println("-");
}
}//조건 3
else if (num >= 60) {
System.out.print("D");
if (num >= 67) {
System.out.println("+");
} else if (num >= 63) {
System.out.println("-");
}
}//조건 4
else if (num < 60) {
System.out.print("F");
}//조건 5
else {
System.out.println("다시 입력하세요");
}//조건 6
}
}
8. random 함수
package j0510;
import java.util.Scanner;
public class C0510_07 {
public static void main(String[] args) {
// 실습1
// 랜덤숫자
double random = 0;
// random = Math.random(); // 0.0~0.9999999..까지 출력
// random = (int)(Math.random()*10); // 0~9까지 출력 (int 정수형이기 때문에)
random = (int) (Math.random() * 3) + 1; // 1~3까지 출력 (int 정수형이기 때문에)
System.out.println(random);
}
}
9. for문 실습 1~100까지의 합
package j0510;
import java.util.Scanner;
public class C0510_08 {
public static void main(String[] args) {
// 실습 1
//반복문 - for,while
int sum = 0;
int i = 0;
for (i=1;i<=100;i++) { // int는 밖에서 정의 했기 때문에 필요 없음
// for (int i=1;i<=100;i++) { // i가 for문 안에서만 정의된 것
sum = sum +i; // 이전 값(sum)+2
// sum += i;
System.out.println(i+":"+sum);
}// 조건식이 안 맞아야지만 나옴
System.out.println((i-1)+":"+sum);
}
}
10. for문 _ 곱셉 (printf 사용)
package j0510;
import java.util.Scanner;
public class C0510_08 {
public static void main(String[] args) {
for(int i=1;i<=9;i++) {
// for (int j = 1; j <= 9; j++) {
//
// }
// System.out.println(i+"*"+i+"="+(i*i));
System.out.printf("%d * %d = %d \n",i,i,i*i);
}
}
}
11. 이중 for문 _ i*j = 9*9=81번 반복
package j0510;
import java.util.Scanner;
public class C0510_08 {
public static void main(String[] args) {
// 실습 2
for(int i=1;i<=9;i++) {
// System.out.println("["+i+"번째] \n");
System.out.printf("[%d번째] \n",i);
for (int j = 1; j <= 9; j++) {
System.out.printf("%d * %d = %d \n",i,j,i*j);
System.out.println("안녕"+j);
}
// System.out.println(i+"*"+i+"="+(i*i));
// System.out.printf("%d * %d = %d \n",i,i,i*i);
System.out.println("마지막"+i+"\n");
}
}
}
12. 증감 연산자 -- & for문 활용
package j0510;
import java.util.Iterator;
import java.util.Scanner;
public class C0510_08 {
public static void main(String[] args) {
// i--, i-=1, i=i-1
// i++, i+=1, i=i+1
for (int i = 10; i >0; i=i-2) {
System.out.println(i);
}
}
}
13. while 문
package j0510;
import java.util.Iterator;
import java.util.Scanner;
public class C0510_08 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 문제 4번
// 랜덤숫자 1-100까지의 랜덤숫자 1개를 출력하시오.
int random = 0;
int random1 = (int) (Math.random() * 10) + 1;
// System.out.println(random1);
// 숫자 맞추기 프로그램 - 문제 4번 연장선으로 실습
int i = 1;
while (i <= 10) {
System.out.println("숫자 입력");
int input = scan.nextInt();
if (input == random1) {
System.out.println("정답입니다");
break;
} else {
System.out.println("오답입니다.");
}
System.out.println("정답 : " + random1);
}
}
}
5 문제풀이
1. if 조건문 - 값 입력 받아서 조건문 출력
package j0510;
import java.util.Scanner;
public class C0510_02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//입력한 숫자가 2의 배수이면 2의 배수입니다. 2의 배수가 아닙니다. 출력
int num = 0;
Scanner scan = new Scanner(System.in);
System.out.println("값을 입력해주세요");
num = scan.nextInt();
if (num%2==0) {
System.out.println("2의 배수입니다.");
}
else {
System.out.println("2의 배수가 아닙니다.");
}
}
}
2. if 조건문 - 점수에 따른 출력 부여
package j0510;
import java.util.Scanner;
public class C0510_03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 문제풀이 2
// 점수를 입력받아 60점 이상이면 합격, 60점 이하면 탈락
int num = 0;
Scanner scan = new Scanner(System.in);
System.out.println("점수 입력해라 ");
num = scan.nextInt();
if (num>=60) {
System.out.println("합격빠이야");
}
else if (num<60) {
System.out.println("탈락");
}
else {
System.out.println("숫자가 아님");
}
}
}
3. if 조건문 - 특정 선택 값만 입력 받아서 출력 (1,6,9면 1,6,9로)
package j0510;
import java.util.Scanner;
public class C0510_03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 입력한 숫자가 1,6,9만 입력 받아 1,6,9 출력
int num = 0;
Scanner scan = new Scanner(System.in);
System.out.println("입력해라");
num = scan.nextInt();
if (num==1) {
System.out.println("1입니다");
}
else if (num==6) {
System.out.println("6입니다");
}
else if (num==9){
System.out.println("9입니다");
}
else {
System.out.println("1,6,9에 해당하지 않습니다.");
}
}//class
}//main
4. m,f문자로 입력 받아 m이면 남자, f이면 여자
package j0510;
import java.util.Scanner;
public class C0510_03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// m,f문자로 입력받아 m이면 남자, f면 여자
String str = ""; //객체, 기본형타입만 ==
Scanner scan = new Scanner(System.in);
System.out.println("문자 입력 m 또는 f");
str = scan.next();
if (str.equals("m")) { //문자 비교할 때는 .equals를 사용한다는 것
System.out.println("m이므로 남자");
}
else if (str.equals("f")) {
System.out.println("f이므로 남자 ");
}
else {
System.out.println("딴거다");
}
}//class
}//main
5. switch 문제 - m 남자, f 여자 출력
package j0510;
import java.util.Scanner;
public class C0510_04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 1번 문제
// m,f 입력 받아 m,f 남자 여자 출력 - switch 문 사용
String input = " ";
// char input = ' ';
Scanner scan = new Scanner(System.in);
System.out.println("문자 입력");
input = scan.next();
// input = scan.next().charAt(0); // char를 사용할 때 (대, 소문자)
// charAt(0)을 쓰는 이유는
// char의 특정 자리만 출력해달라는 뜻 예를 들어 (1)을 쓰면 2번째 자리가 출력
switch (input) {
case "m": {
System.out.println("m입니다.");
break;
}
case "f": {
System.out.println("f입니다.");
break;
}
default:
System.out.println("다른거입니다.");
break;
}
// 더 짧게 하는 법 char 사용 시
// switch (input) {
// case 'm' : case 'M':
// System.out.println("남자입니다.");
// break;
// case 'f' : case 'F':
// System.out.println("여자입니다");
// break;
//
// }
}// class
}// main
// input = scan.next().charAt(0); char를 사용할 때 (대,소문자)
// 더 짧게 하는 법
// case 'm' : case 'M':
// System.out.println("남자입니다.");
// break;
// case 'f' : case 'F':
// System.out.println("여자입니다");
// break;
//
위처럼 case 표시는 이렇게 생략이 가능
6. if 조건문 1번
package j0510;
import java.util.Scanner;
public class C0510_05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 1번
String str = "";
Scanner scan = new Scanner(System.in);
System.out.println("문자열 입력");
str = scan.next();
if (str.equals("c")) {
//equalsIgnoreCase : 대소문자 치환
//if (str=="c") { //기본형 8개 - boolean,char,bytep,short,int,long,float 외에는 비교가 불가능
System.out.println("c 입니다.");
} else {
System.out.println("아닙니다");
}
}
}
7. if 조건문 2번 - 점수에 따른 랭크 부여
package j0510;
import java.util.Scanner;
public class C0510_05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 문제 1
// 점수 입력 받아, 90점 이상이면 A, 80점 이상이면 B, 70-C, 60-D,F
int num = 0;
Scanner scan = new Scanner(System.in);
System.out.println("점수 입력");
num = scan.nextInt();
if (num>=90) {
System.out.println("A");
}
else if (num>=80) {
System.out.println("B");
}
else if (num>=70) {
System.out.println("C");
}
else if (num>=60) {
System.out.println("D");
}
else if (num<60) {
System.out.println("F");
}
else {
System.out.println("다시 입력하세요");
}
}
}
8. switch - 계산기
package j0510;
import java.util.Scanner;
public class C0510_06 {
public static void main(String[] args) {
// 계산기
// 1. 변수선언 num1, num2, op 2. scan입력 3번 입력
// 3. 비교(switch) 4.결과값 출력 - 더하기 결과값 : 4
int num1 = 0, num2 = 0, result = 0;
char op = ' ';
Scanner scan = new Scanner(System.in);
System.out.println("첫번째 값 입력");
num1 = scan.nextInt();
System.out.println("부등호 입력");
op = scan.next().charAt(0);
System.out.println("두번째 값 입력");
num2 = scan.nextInt();
switch (op) {
case '+':
result = num1+num2;
break;
case '-':
result = num1-num2;
break;
case '*':
result = num1*num2;
break;
case '/':
result = num1/num2;
// System.out.println((num1 + "" + op + "" + num2 + "=") + (num1 / num2));
break;
default:
System.out.println("다시 입력하세요");
break;
}
System.out.println((num1 + "" + op + "" + num2 + "=") + result);
}
}
9. random 함수 - 1~10 뽑아보기
package j0510;
import java.util.Scanner;
public class C0510_07 {
public static void main(String[] args) {
// 문제 1. 1~10까지 출력
double random = 0;
random = (int)(Math.random()*10+1);
System.out.println(random);
// System.out.println((int)(Math.random()*10+1));
}
}
10. random 함수 써서 당첨, 꽝 확인하기
package j0510;
import java.util.Scanner;
public class C0510_07 {
public static void main(String[] args) {
// 문제 2번
// 숫자를 입력 받아 같은 값일 경우 정답 그렇지 않으면 오답 출력하시오.
int random = (int) (Math.random() * 3) + 1; // 1,2,3
int input = 0;
Scanner scan = new Scanner(System.in);
System.out.println("값 입력하시오");
input = scan.nextInt();
if (random == input) {
System.out.println("당첨");
System.out.println("입력 번호 : " + input);
System.out.println("당첨 번호 : " + random);
} else if (random != input) {
System.out.println("꽝");
System.out.println("입력 번호 : " + input);
System.out.println("당첨 번호 : " + random);
}
else {
System.out.println("숫자를 입력하세요");
}
}
}
11. for문+scanner _값 입력 받고 3까지의 합
package j0510;
import java.util.Scanner;
public class C0510_08 {
public static void main(String[] args) {
// 문제1
// i<=3을 기준으로 반복해서 입력 받아, 합을 출력하시오
// 1. 변수선언 num,sum
// 2. scan 1번 선언
// 3. 반복문
// 4. 숫자 입력 넣어줌
// num = scan.nextInt();
// 5. sum 변수에 더하기 해줌
// sum = sum+sum;
// 6. sum을 출력
int sum = 0;
int i = 0;
Scanner scan = new Scanner(System.in);
System.out.println("1번 값 입력");
int num = scan.nextInt();
for (i = num; i <= 3; i++) {
sum += i;
// System.out.println("입력한 값 : "+i+", 합산 값 : "+sum);
System.out.println("입력한 값 : " + i + ", " + num + "부터 " + i + "까지의 합: " + sum);
}
}
}
12. for문 사용해서 0~9까지 출력
package j0510;
import java.util.Iterator;
import java.util.Scanner;
public class C0510_08 {
public static void main(String[] args) {
// 문제 2
// 0-9까지 출력해라.
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
}
}
13. 2중 for문 + if문
package j0510;
import java.util.Iterator;
import java.util.Scanner;
public class C0510_08 {
public static void main(String[] args) {
// 00 01 02 03 04....09 10 11....99
// 중첩(이중) for문을 사용해서 출력
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
System.out.print(i+""+j+" ");
if (j==0) {
System.out.println(" ");
}
}
}
}
}
14. 값 3개를 입력 받아 더하시오 sum & for문
package j0510;
import java.util.Iterator;
import java.util.Scanner;
public class C0510_08 {
public static void main(String[] args) {
// 숫자를 3번 반복해서 입력받아, 합을 출력하시오.
// 1. 변수선언 num,sum
// 2. scan 1번선언
// 3. 반복문
// 4. 숫자 입력 넣어줌
// num = scan.nextInt();
// 5. sum 변수에 더하기 해줌.
// sum = sum + num;
// 6. sum을 출력
Scanner scan = new Scanner(System.in);
int num=0,sum=0;
for(int i=0;i<3;i++) {
System.out.println((i+1)+"번째 숫자를 입력하세요.");
num = scan.nextInt();
sum = sum + num;
}
System.out.println("합계 : "+sum);
}
}
15. random 1~100 랜덤 숫자 출력
package j0510;
import java.util.Iterator;
import java.util.Scanner;
public class C0510_08 {
public static void main(String[] args) {
// 문제 4번
// 랜덤숫자 1-100까지의 랜덤숫자 1개를 출력하시오.
int random = 0;
int random1 = (int) (Math.random() * 100)+1;
System.out.println(random1);
//숫자 맞추기 프로그램
}
}
16. 이중 for문 활용해서 10개의 숫자를 입력 받아 합계 출력
* 이중 for문
package j0510;
import java.util.Iterator;
import java.util.Scanner;
public class C0510_08 {
public static void main(String[] args) {
// 문제 5번
// 10개의 숫자를 입력 받아 합계를 출력하시오.
int num = 0;
int sum = 0;
Scanner scan = new Scanner(System.in);
for (int i = 1; i <= 10; i++) {
System.out.println(i + "번째 숫자를 입력하세요");
for (int j = 0; j <= 10; j++) {
// System.out.println("10");
num = scan.nextInt();
sum = sum + num;
break;
}
}
System.out.println(sum);
// System.out.printf("%d %d %d 끝이야",n1,j,sum);
}
}
* while문
package j0510;
import java.util.Iterator;
import java.util.Scanner;
public class C0510_08 {
public static void main(String[] args) {
// 문제 5번
// 10개의 숫자를 입력 받아 합계 출력 (while문)
int num = 0;
int sum = 0;
int i = 1;
Scanner scan = new Scanner(System.in);
while (i <= 10) {
System.out.println(i + "번째 숫자를 입력");
num = scan.nextInt();
sum += num;
i++;
}
System.out.println(sum);
}
}
* 핵심
- scanner 활용법
- for문 값의 총 : 55 5050 500500
- for문,if문,while문 활용법
* 0510 실습 링크
'배운 책들 정리 > 자바 완전 정복' 카테고리의 다른 글
자바의 정석 4,5 - 조건문,반복문,배열 2 (1) | 2023.05.13 |
---|---|
자바의 정석 4,5 - 조건문,반복문,배열 (0) | 2023.05.11 |
자바의 정석 3 - 연산자 (scanner, charat, next, 삼항연산자) 등등 (0) | 2023.05.09 |
자바의 정석 1,2 - 자바 설치~변수의 종류~형 변환 (0) | 2023.05.08 |
자바 완전 정복 예습 간단한 리뷰 - 목차 확인, 코드 리뷰 및 연습 (2) | 2023.05.07 |