contents
CHAPTER03 연산자
6.비트 연산자
7.기타 연산자
1)삼항 연산자
2)대입 연산자
3)instanceof
CHAPTER04 제어문
1.조건문
1)if문
2)if-else문
3)if-else if
4)중첩 if문
Ex)간단한 은행 프로그램 만들기 코드
--------------------------------------
CHAPTER03 연산자
6.비트 연산자
-비트 연산자는 개발자가 직접 비트를 조작할 수 있는 연산자임
-연산하는 수를 이진수로 표현 했을 때 규칙에 따라 알맞은 결과를 반환함
종류 | 연산자 | 사용방법 | 설명 |
비트 AND | & | a & b | 변수 a와 변수 b의 비트 단위의 AND |
비트 OR | | | a | b | 변수 a와 변수 b의 비트 단위의 OR |
비트 XOR | ^ | a ^ b | 변수 a와 변수 b의 비트 단위의 XOR |
비트 NOT | ~ | ~ a | 변수 a의 단위의 부정 |
<비트 연산자의 결과를 화면에 표시하는 프로그램: 결과는 10진수로 표시>
Exam-11.java
package ch01;
public class Ex11 { public static void main(String[] args) { // TODO Auto-generated method stub int a = 15; //0000 1111 int b = 5; //0000 0101 System.out.println(a | b); //0000 1111 System.out.println(a & b); //0000 0101 System.out.println(a ^ b); //0000 1010 System.out.println(a >> 2); //0000 1111 //0000 0011 : 2의2승 나눗셈 : 15 / 4 :3 -> 11(사라짐, 데이터 손실) 오른쪽 두칸 이동(0000 0011 11) System.out.println(b << 4); //0000 0101 //0101 0000 : 2의4승 곱셈 16 * 5 : 80 } } |
실행결과
15
5 10 3 80 |
7.기타 연산자
-기본 연산자 외에도 특정한 기능을 수행하는 다양한 연산자가 있음
1)삼항 연산자
-삼항 연산자는 항이 세 개인 연산자임. 조건식의 참/거짓 여부에 따라서 각각 다른 결과를 반환함. 삼항 연산자는 다음과 같은 형식으로 되어 있음
조건 ? 항목1 : 항목2 (1) (2) (3) |
(1)조건: 참과 거짓으로 구분할 수 있는 비교 연산, 논리 연산 등
(2)항목1: 조건이 참인 경우 실행할 연산이나 함수 등
(3)항목2: 조건이 거짓인 경우 실행할 연산이나 함수 등
-만약 조건식의 결과가 true라면 문장1이 실행되고 조건식의 결과가 false이면 문장2를 실행함
<나이에 따라 성인인지, 청소년인지를 구분하는 프로그램>
Exam-12.java
package ch01;
public class Ex12 { public static void main(String[] args) { // TODO Auto-generated method stub int age = 17; System.out.println(age > 19 ? "성인입니다":"청소년입니다."); } } |
실행결과
청소년입니다. |
2)대입 연산자
-대입 연산자는 값을 할당하는데 쓰이는 연산자로서, 자주 사용하는 연산을 간결하게 코딩할 수 있도록 만들어진 연산자임. 다음은 대입 연산자의 종류임
연산자 | 예 | 설명 | 풀어쓴 형식 |
= | a = 1 | 변수 a에 1을 기억 | a = 1 |
+=(더하기) | a += 2 | 변수 a에 2를 더하여 다시 a에 기억 | a = a + 2 |
-=(빼기) | a -= 4 | 변수 a에서 4를 뺀 후 다시 a에 기억 | a = a - 4 |
*=(곱하기) | a *= 7 | 변수 a에 7을 곱한 후 다시 a에 기억 | a = a * 7 |
/=(나누기) | a /= 3 | 변수 a를 3으로 나눈 몫을 다시 a에 기억 | a = a / 3 |
%=(나머지) | a %= 5 | 변수 a를 5로 나눈 나머지를 a에 기억 | a = a % 5 |
<대입 연산자를 이용하여 결과를 표시하는 프로그램>
Exam-13.java
package ch01;
public class Ex13 { public static void main(String[] args) { // TODO Auto-generated method stub int a = 3; int b = 5; b = a; System.out.println(b); a += 1; // a = a + 1; System.out.println(a); a /= 2; // a = a / 2; System.out.println(a); a *= a; // a = a * a; System.out.println(a); } } |
실행결과
3
4 2 4 |
- b = a 는 '순수 대입'임. b라는 변수에 a에 있는 값을 대입한다는 의미임
-그 뒤에 이어지는 +=, /=, *= 연산자는 '복합대입 연산자'로서 연산자를 여러 개 붙여서 계산을 한 후에 대입한다는 의미가 있음
3)instanceof
-instanceof 연산자는 객체의 타입을 확인하는 연산자임. 주로 조건문에서 사용되며 instanceof의 왼쪽에는 참조변수를 오른쪽에는 클래스명을 두고 연산함. 연산의 결과로 true 또는 false를 반환함. 결과 값이 true일 경우 해당 참조변수는 검사한 타입으로 형변환이 가능하다는 것을 뜻함
<instanceof 연산자의 결과를 표시하는 프로그램>
Exam-14.java
package ch01;
class A{} //:설계도 A class B extends A{} //:설계도 B인데, A의 설계도를 포함 public class Ex14 { public static void main(String[] args) { // TODO Auto-generated method stub A a = new A(); //데이터 타입: A객체, 변수명: a = NEW A(); B b = new B(); //데이터 타입: B객체, 변수명: b = NEW B(); System.out.println("a instanceof A: " + (a instanceof A)); System.out.println("b instanceof A: " + (b instanceof A)); System.out.println("a instanceof B: " + (a instanceof B)); System.out.println("b instanceof B: " + (b instanceof B)); } } |
실행결과
a instanceof A: true
b instanceof A: true a instanceof B: false b instanceof B: true |
-A라는 클래스와 이를 상속받은 B라는 클래스가 있음. 그리고 4가지 경우에 대해 instanceof 연산자로 확인함
-a instanceof A는 a가 클래스 A의 참조변수이므로 true를 반환하고, b instanceof A는 b가 클래스 A를 상속받은 클래스 B의 참소변수이므로 true를 반환함
-그러나 a instanceof B는 a는 B의 참조변수도 아니고 클래스 B를 상속받은 것도 아니므로 false를 반환하고 b instanceof B는 b가 클래스 B의 참조변수이므로 true를 반환함
*참조변수: 메모리 주소를 저장하는 변수
-주로 객체를 생성할 때, 해당 객체의 메모리 주소를 변수에 담음
CHAPTER04 제어문
1.조건문
-조건문이란 특정한 조건을 만족하면 수행할 작업과 만족하지 않을 때 수행할 작업을 미리 정해 놓고, 조건에 따라 각각 다르게 실행하도록 만들어 놓은 제어문임
1)if문
-if문은 가장 기본적인 조적문으로 조건식 부분과 실행 부분으로 나누어져 있음
if(조건식) { // 실행부분 } |
(1)조건식: 식의 결과가 참 또는 거짓으로 구분될 수 있는 문장임
(2)실행부분: 조건식의 결과가 참이면 실행할 문장임
<변수 a의 값이 3보다 큰지 비교하는 프로그램>
Exam-15.java
package ch01;
public class Ex15 { public static void main(String[] args) { // TODO Auto-generated method stub int a = 5; if(a > 3) { System.out.println("a는 3보다 큽니다."); } System.out.println("검사가 끝났습니다."); } } |
실행결과
a는 3보다 큽니다.
검사가 끝났습니다. |
2)if-else문
- if-else문은 if문 구조에서 조건식이 false일 경우에 실행되는 부분을 추가한 문장으로 조건식이 만족할 때와 만족하지 않을 때 각각 다른 문장을 수행함
if(조건식) { //실행부분1 } else { //실행부분2 } |
(1)조건식: 식의 결과가 참 또는 거짓으로 구분될 수 있는 문장임
(2)실행부분1: 조건식의 결과가 참이면 실행할 문장임
3)실행부분2: 조건식의 결과가 거짓이면 실행할 문장임
<나이에 따라 요금제를 선택하는 프로그램>
Exam-16.java
package ch01;
public class Ex16 { public static void main(String[] args) { // TODO Auto-generated method stub int age = 15; if(age > 19) { //조건식은 false입니다. System.out.println("성인입니다."); System.out.println("성인요금이 적용됩니다."); } else { System.out.println("청소년입니다."); System.out.println("청소년요금이 적용됩니다."); } System.out.println("결제를 진행해주세요."); } } |
실행결과
청소년입니다.
청소년요금이 적용됩니다. 결제를 진행해주세요. |
3)if-else if
-if-else if 문은 조건이 여러 가지일 경우 조건에 따라 각각 다른 작업을 수행하고 싶을 때 사용함
if(조건) { //실행부분1 } else if(조건2) { //실행부분2 } else if(조건3) { //실행부분3 } else { //실행부분4 } |
(1)조건1을 만족하면 실행부분1을 실행함
(2)조건1을 만족하지 않고 조건2를 만족하면 실행부분2를 실행함
(3)조건1과 조건2를 만족하지 않고 조건3을 실행하면 실행부분3을 실행함
(4)조건1, 조건2, 조건3을 모두 만족하지 않으면 실행부분4를 실행함
<나이를 입력받아 적절한 요금제를 알려주는 프로그램>
Exam-17.java
package ch01;
import java.util.*; //Scanner클래스를 사용하기 위해서 추가한 부분 public class Ex17 { public static void main(String[] args) { // TODO Auto-generated method stub\ int age; Scanner input = new Scanner(System.in); String tmp = input.nextLine(); age = Integer.parseInt(tmp); if(age > 19) { System.out.println("성인입니다."); System.out.println("성인요금이 적용됩니다."); } //19 >= age가 14~19살인 경우 : 19 >= age && age >13 else if(age > 13) { System.out.println("청소년입니다."); System.out.println("청소년요금이 적용됩니다."); } //13 >= age가 9~13살인 경우 : 13 >= age && age > 8 else if(age > 8) { //8 >= age System.out.println("어린이입니다."); System.out.println("어린이요금이 적용됩니다."); } //age가 9보다 작은 경우 : //8 >= age else { System.out.println("유아입니다."); System.out.println("유아요금이 적용됩니다."); } input.close(); System.out.println("결제를 진행해 주세요."); } } |
실행결과
9
어린이입니다. 어린이요금이 적용됩니다. 결제를 진행해 주세요. |
- import java.util.*; 는 Scanner 클래스를 사용하기 위해 추가한 부분임. Scanner 클래스는 사용자로부터 입력을 받기 원할 때 사용하는 클래스임
Scanner input = new Scanner(System.in); String tmp = input.nextLine(); |
-Scanner 클래스를 사용하기 위해서는 먼저 Scanner 클래스를 참조하는 변수를 생성함. 그리고 참조변수를 이용해서 input.nextLine() 부분에서 사용자에게 입력을 받음. 입력을 받고 나면 tmp이라는 문자형 변수에 입력내용이 저장됨
cf) Integer.parseInt() : 정수로 변환
4)중첩 if문
-중첩 if문은 if문의 실행 부분에 다시 if문을 중첩해서 쓰는 문장임
if(조건1) { //실행부분1 if(조건2) { //실행부분2 } } else{ //실행부분3 } |
(1)조건1을 만족하면 실행부분1을 실행함
(2)조건1을 만족하고 조건2를 만족하면 실행부분1을 실행한 다음 실행부분2를 실행함
(3)조건1을 만족하지 않으면 실행부분3을 실행함
<아이디와 비밀번호를 입력받아 일치하는지 비교하는 프로그램>
Exam-18.java
package ch01;
import java.util.*; public class Ex18 { public static void main(String[] args) { // TODO Auto-generated method stub String id, password; Scanner input = new Scanner(System.in); //입력받은 내용에 대한 Scanner System.out.printf("아이디를 입력해주세요: "); id = input.nextLine(); if(id.equals("java")) { //1차로 거름 System.out.println("id 일치"); System.out.printf("비밀번호를 입력해주세요: "); password = input.nextLine(); if(password.equals("abc123")) { //2차 검토 System.out.println("password 일치"); System.out.println("로그인 성공!"); } else System.out.println("password 불일치"); } else System.out.println("id 불일치"); } } |
실행결과
아이디를 입력해주세요: java
id 일치 비밀번호를 입력해주세요: abc123 password 일치 로그인 성공! |
*ctrl + F11: 이전에 실행되었던 Run 파일 실행
Ex)
<간단한 은행 프로그램 만들기 코드>
package ch01;
import java.util.*; public class Exbank { public static void main(String[] args) { // TODO Auto-generated method stub /* 최종목적: 1.입금 2.출금 3.확인 4.종료에 해당하는 기능 구현 */ final String MY_ACCOUNT_NAME = "123-4444-5678"; int money = 0; System.out.println("======= 계좌명 : "+ MY_ACCOUNT_NAME + "========"); System.out.println("1.입금"); System.out.println("2.출금"); System.out.println("3.확인"); System.out.println("4.종료"); System.out.println("원하시는 메뉴를 고르세요 : "); Scanner scanner = new Scanner(System.in); int choice = Integer.parseInt(scanner.nextLine()); if(choice == 1) { System.out.println("얼마를 입금하시겠습니까?"); int depositMoney = scanner.nextInt(); money += depositMoney; System.out.println(depositMoney + "원을 입금하여 잔액이 " + money + "원입니다. "); } else if(choice ==2) { int withdrawMoney = scanner.nextInt(); if(money < withdrawMoney) { System.out.println("출금할 돈이 부족합니다."); }else money -= withdrawMoney; System.out.println(withdrawMoney + "원을 출금하여 잔액이 " + money + "원입니다. "); } else if (choice == 3) { System.out.println("현재 잔액은 "+money+"원 입니다."); } else if (choice == 4) { System.out.println("시스템을 종료합니다."); } else { System.out.println("해당 메뉴가 없습니다. 다시 입력하세요"); } scanner.close(); } } |
'프로그래밍 > java' 카테고리의 다른 글
JAVA 프로그래밍 43일차 (25/1/10) (0) | 2025.01.10 |
---|---|
JAVA 프로그래밍 42일차 (25/1/9) (0) | 2025.01.09 |
개발자 환경 구축 40일차 (25/1/7) (0) | 2025.01.07 |