본문 바로가기

배운 책들 정리/자바 완전 정복

자바의 정석 3,4 - 연산자, 조건문

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 실습 링크

 

 

GitHub - RosePaku/bigdata_java: 빅데이터_자바의_정석

빅데이터_자바의_정석. Contribute to RosePaku/bigdata_java development by creating an account on GitHub.

github.com

 

728x90
반응형
LIST