일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 강아지 #박스집 #복층
- 부의감각
- fifaonline4
- 피온4
- 안드로이드#앱만들기#알바
- 패스트캠퍼스
- 불끌때
- 독서감상문
- 자바 인강
- 부르지마세요
- 랜덤
- 홈CCTV
- 아두이노#작품#사료급식기
- 안드로이드
- K디지털크레딧
- D-ID
- 강아지 스마트 펜스
- 바이트디그리
- 안드로이드 그림판#그림메모장#낙서장
- 내일배움카드
- 안녕 디지몬
- #FIFAONLINE4
- Java & SpringBoot로 시작하는 웹 프로그래밍
- 스쿼드 메이커
- 랜덤스쿼드
- 혼술 술자리 인싸앱
- 박스#강아지집#만들기
- Ai
- fifaonline
- 안드로이드 #앱개발#계산기
- Today
- Total
LC Studio
JAVA & Spring 강의 (자바 인강 2주차) 자바기초2 본문
자바의 연산자들
항과 연산자
- 항(operand) : 연산에 사용되는 값
- 연산자 (operator) : 항을 이용하여 연산하는 기호
대입 연산자 (assignment operator)
- '='
- 변수에 다른 변수나 값을 대입하는 연산자
- 왼쪽에는 변수가 와야하고, 오른쪽에는 변수 or 식 or 값
- ex) num = 1;
부호 연산자
- '+', '-'
- 변수의 부호를 유지 하거나(+) 바꿈(-)
산술 연산자
1. 사칙 연산자
- + 더하기
- - 빼기
- * 곱하기
- / 나누기
- % 나머지
2. 복합 대입 연산자
- += 두항의 값을 더해 왼쪽 항에 대입 (num += 1) => num = num + 1;
- -= 위와같음
- *= 위와같음
- /= 위와같음
- %= 위와같음
증감, 감소 연산자
- ++ 항의 값에 1을 더해줌, 앞에 뒤에 붙임에 따라 증감 순서가 달라짐
- -- 항의 값에 1을 빼줌, 위와같음
관계연산자
- >
- <
- >=
- <=
- ==
- !=
논리 연산자
- && (and)
- || (or)
- ! (not)
package ch12;
public class LogicalTest {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
boolean flag = (num1 > 0) && (num2 > 0);
System.out.println(flag);
flag = (num1 < 0) && (num2 > 0);
System.out.println(flag);
flag = (num1 > 0) || (num2 > 0);
System.out.println(flag);
flag = (num1 < 0) || (num2 > 0);
System.out.println(flag);
flag = !(num1 > 0);
System.out.println(flag);
}
}
package ch12;
public class ShortCircuit {
public static void main(String[] args) {
int num1 = 10;
int i = 2;
boolean value = ((num1 = num1 + 10 ) < 10) && ( ( i = i + 2 ) < 10);
System.out.println(value);
System.out.println(num1);
System.out.println(i);
value = ((num1 = num1 + 10 ) < 10) || ( ( i = i + 2 ) < 10);
System.out.println(value);
System.out.println(num1);
System.out.println(i);
}
}
조건 연산자
- 조건식 ? 결과1 : 결과2;
- ex) (100>10)? 1:2; -> 1
package ch13;
import java.util.Scanner;
public class ConditionTest {
public static void main(String[] args) {
int max;
System.out.println("입력 받은 두 수중 큰 수를 출력하세요\n ");
Scanner scanner = new Scanner(System.in);
System.out.println("입력1:");
int x = scanner.nextInt();
System.out.println("입력2:");
int y = scanner.nextInt();
max = (x > y)? x : y;
System.out.println(max);
}
}
비트 연산자
- ! 반전
- & and
- | or
- ^ XOR
- << 왼쪽 shift
- >> 오른쪽 shift
- >>> 오른쪽 shift
package ch13;
public class BitTest {
public static void main(String[] args) {
int num1 = 5; // 00000101
int num2 = 10; // 00001010
System.out.println(num1 | num2);
System.out.println(num1 & num2);
System.out.println(num1 ^ num2);
System.out.println(~num1);
System.out.println(num1 << 2);
System.out.println(num1);
System.out.println(num1 <<= 2);
System.out.println(num1);
}
}
조건문
if문 (만약에 ~~라면)
if(조건식){
수행문; // 조건식이 '참'인 경우에(조건에 맞는 경우) 수행문이 수행됨
} // 조건식이 '참'이 아니면(조건에 맞지 않는 경우) 수행문이 수행되지 않음
package ch14;
import java.util.Scanner;
public class IfElseTest {
public static void main(String[] args) {
int age = 7;
//Scanner scanner = new Scanner(System.in);
//int age = scanner.nextInt();
if( age >= 8) {
System.out.println("학교에 다닙니다");
}
else {
System.out.println("학교에 다니지 않습니다.");
}
}
}
if-else 문
if(조건식1){
수행문1; // 조건식1이 '참'인 경우 수행하고 전체 조건문을 빠져나감
}
else if(조건식2){
수행문2; // 조건식2이 '참'인 경우 수행하고 전체 조건문을 빠져나감
}
else if(조건식3){
수행문3; // 조건식3이 '참'인 경우 수행하고 전체 조건문을 빠져나감
}
else{
수행문4; // 위 조건이 모두 해당되지 않는 경우 수행됨 (디폴트 조건)
}
수행문5; // if-else if-else 문이 끝나면 수행됨
가령 조건식2가 만족되면 수행문2 -> 수행문5 순으로 수행됨
package ch15;
public class IfElseIfElseTest {
public static void main(String[] args) {
int age = 12;
int charge;
if(age < 8){
charge = 1000;
System.out.println("미 취학 아동입니다.");
}
else if(age < 14){
charge = 2000;
System.out.println("초등학생 입니다.");
}
else if(age < 20){
charge = 2500;
System.out.println("중, 고등학생 입니다.");
}
else{
charge = 3000;
System.out.println("일반인 입니다.");
}
System.out.println("입장료는 " + charge + "원입니다.");
}
}
switch - case 문
특정 값이나, 문자열 비교하는 경우 좋음
아래는 숫자를 기준으로 비교하는 경우,
package ch16;
public class SwitchCaseTest {
public static void main(String[] args) {
int month = 10;
int day;
switch(month){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
day = 31;
break;
case 4: case 6: case 9: case 11:
day = 30;
break;
case 2:
day = 28;
break;
default:
day = 0;
System.out.println("존재하지 않는 달 입니다.");
}
System.out.println(month + "월은 " + day + "일입니다.");
}
}
아래는 문자를 기준으로 비교하는 경우,
package ch16;
public class SwitchCaseTest2 {
public static void main(String[] args) {
String medal = "Gold";
switch(medal) {
case "Gold":
System.out.println("금메달 입니다.");
break;
case "Silver":
System.out.println("은메달 입니다.");
break;
case "Bronze":
System.out.println("동메달 입니다.");
break;
default:
System.out.println("메달이 없습니다.");
break;
}
}
}
Switch Expression문
java14부터 지원
식으로 표현하여 return 값을 받을 수 있다.
switch문 안에서 return이라 적지 않고, yield라 적는다.
return값이 없으면 에러가 발생한다.
아래 예시는 int day에 대한 값을 Switch Expression문을 통해 받았다.
package ch16;
public class SwitchCaseUpTest {
public static void main(String[] args) {
int month = 3;
int day = switch (month) {
case 1, 3, 5, 7, 8, 10,12 -> {
System.out.println("한 달은 31일입니다.");
yield 31;
}
case 4,6,9,11 -> {
System.out.println("한 달은 30일입니다.");
yield 30;
}
case 2 ->{
System.out.println("한 달은 28일입니다.");
yield 28;
}
default->{
System.out.println("존재하지 않는 달 입니다.");
yield 0;
}
};
System.out.println(month + "월은 " + day + "일입니다.");
}
}
반복문
while문
조건식이 true일 동안 순서대로 계속 반복
ex) while(조건문){
수행문 ...
}
-조건문이 false가 되거나, while문 안에 break;를 만나면 while문 종료
-조건문에 true를 작성하면 무한반복 가능
package ch17;
public class WhileTest {
public static void main(String[] args) {
int num = 1;
int sum = 0;
while( num <= 10) {
sum += num;
num++;
}
System.out.println(sum);
System.out.println(num);
}
}
do-while문
조건과 상관없이 수행을 한번 하고 while(조건식)을 체크
do {
수행문 1;
} while(조건식);
수행문 2;
아래는 입력받는 값을 더하여 sum에 저장하는 do-while문
0이 입력되면, (input != 0)이 false가 되기 때문에 do-while문 종료
package ch18;
import java.util.Scanner;
public class DowhileTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int input;
int sum = 0;
do {
input = scanner.nextInt();
sum += input;
}while(input != 0);
System.out.println(sum);
}
}
for 문
for(초기화식; 조건식; 증감식){
수행문;
}
아래의 for문 예시에서,
초기화식은 int i =0;
조건식은 i<10;
증감식은 i++, count++
풀어서 설명하면,
i는 0부터 10보다 작을때까지 수행문을 수행하고
수행이 끝나면 i를 1 증가시키고, count또한 1을 증가시켜라.
package ch19;
public class ForTest {
public static void main(String[] args) {
int count =1;
int sum = 0;
for( int i = 0 ; i<10; i++, count++) { //10번
sum += count;
//count++;
}
System.out.println(sum);
int num = 1;
int total = 0;
while( num <= 10) {
total += num;
num++;
}
System.out.println(total);
}
}
-초기화식 생략 가능(이미 초기화 되어 있는 경우)
-조건식 생략가능(반복수행 조건이 내부에 있고, break도 활용가능)
-증감식 생략가능(연산이 복잡한 경우 등)
-무한반복 for( ; ; )
중첩 반복문
반복문 내부의 반복문
2차원배열 등을 다룰때 유용
아래는 구구단 구현 예제
package ch20;
public class NestedLoopTest {
public static void main(String[] args) {
int dan = 2;
int count = 1;
for( dan = 2; dan <= 9; dan++) {
for(count = 1; count <=9; count++) {
System.out.println( dan + "X" + count + "=" + dan * count);
}
System.out.println();
}
dan = 2;
while( dan <= 9 ) {
count = 1;
while (count <= 9) {
System.out.println( dan + "X" + count + "=" + dan * count);
count++;
}
dan++;
System.out.println();
}
}
}
break문
제어문의 블록을 빠져나옴 (for, while, switch)문에서 활용가능
package ch21;
public class BreakTest {
public static void main(String[] args) {
int sum = 0;
int num;
for( num = 1; ; num++) {
sum += num;
if( sum >= 100) break;
}
System.out.println(sum);
System.out.println(num);
}
}
continue문
continue 이후의 수행문들을 수행하지 않음
package ch21;
public class ContinueTest {
public static void main(String[] args) {
int num;
for( num = 1; num <= 100; num++) {
if( (num % 3) != 0) continue;
System.out.println(num);
}
}
}
'Java > Java&Spring 기초 강의' 카테고리의 다른 글
JAVA & Spring 강의 (자바 인강 6주차) 자바와 자료구조 (0) | 2022.04.27 |
---|---|
JAVA & Spring 강의 (자바 인강 5주차) 객체 지향 핵심, 자바의 유용한 클래스들, 자바와 자료구조 (0) | 2022.04.20 |
JAVA & Spring 강의 (자바 인강 4주차) 객체 지향 핵심 (0) | 2022.04.13 |
JAVA & Spring 강의 (자바 인강 3주차) 객체 지향 입문 (0) | 2022.04.01 |
JAVA & Spring 강의 (자바 인강 1주차) 자바기초1 (0) | 2022.03.23 |