기록
20220728 수업기록 본문
07-28(목) 수업진도 1.비교연산자 2.++, -- 증감식 3.예제문제 3.조건문 -if -switch |
1.비교연산자
- 비교연산자를 char로 사용할 경우는 unicode값으로 비교
- 실수값들에 대하여 절대 비교연산자 사용하지 말 것 (오차가 있기 떄문임)
- => 꼭 사용해야 된다면 실수를 정수화로 캐스팅 한 후에, 사용할 것
package p01.basic;
public class RelationalOperatorEx2 {
public static void main(String[] args) {
//char 유니코드 비교연산자 예시
char ch1 = 'A';
char ch2 = 'B';
char ch3 = 'a';
boolean bResult = (ch1 < ch2);
System.out.println("bResult = " + bResult);
//값 : true //A = 65, B = 66
bResult = (ch1 < ch3);
System.out.println("bResult = " + bResult);
//값 : false //A = 65 , a = 97
}
}
package p01.basic;
public class RelationalOperatorEx2 {
public static void main(String[] args) {
double d1 = 0.1;
float f1 = 0.1f
bResult = (d1 == f1);
System.out.println("bResult = " + bResult );
//값 : false //0.1과 0.1f가 다르다고 판단함
//실수를 정수화로 캐스팅해서 비교연산
bResult = ((int)(d1*10)==1);
System.out.println("bResult = " + bResult );
//값 : true //1==1 정수화로 비교연산을하면 정확하게 판단할수있다.
}
}
2. 증감식 ( ++., --) increment operator, decrement operator
- C language (C++, java)에서도 사용함
- increment operator = ++증가
- n1++ == n1+1
package p02.inc_dec;
public class IncrementOperatorEx {
public static void main(String[] args) {
int n1 = 10;
int result;
System.out.println("n1 = " + n1 );
//값 : 10
n1++; // n1 = n1+1 == n1+=1
System.out.println("n1 = " + n1 );
//값 : 11
++n1 // n1 = n1+1 == n1+=1
System.out.println("n1 = " + n1 );
//값 : 12
result = n1++; //1. result == n1 => 2. n1=n1+1
System.out.println("result" + result );
//값 : 12
// = 이퀄이 먼저 대입되고 다음으로 증감식으로 수행되기때문
System.out.println("n1 = " + n1 );
//값 : 13
result = ++n1; //1.result = n1+1
System.out.println("reuslt" + result );
//값 : 14
System.out.println("n1 = " + n1 );
//값 : 14
}
}
- decrement operator = --감소
- n1-- == n1-1
package p01.escape.sequence;
public class DecrementOperatorEx {
public static void main(String[] args) {
int n1 =10;
int result;
System.out.println("n1 = " + n1);
//값 : 10
n1--; // n1 = n1-1 (n1 -= 1)
System.out.println("n1 = " + n1);
//값 : 9
--n1; // 위와 동일하다
System.out.println("n1 = " + n1);
//값 : 8
result = n1--; //1.result = n1 -> 2. n1= n1-1
System.out.println("result" + result);
//값 : 8
System.out.println("n1 = " + n1);
//값 : 7
result = --n1; //1.result = n1-1
System.out.println("result" + result);
//값 : 6
System.out.println("n1 = " + n1);
//값 : 6
}
}
3.예제문제
- 2개의 숫자를 프로그램 내부에서 자동생성하여 더하기 퀴즈 문제를 내는 프로그램
package p05.practice;
import java.util.Scanner;
import p02.datatypes_basic.booleanEx;
//2개의 숫자를 프로그램내부에서 자동생성하여 더하기 퀴즈 문제를 내는 프로그램
public class AdditionQuiz {
public static void main(String[] args) {
//1970년 1월 1일 0시 0분 0초 기준으로 현재까지 1000분의 1초 단위의 숫자를 return
long currentTimeMillisecond = System.currentTimeMillis();
int num1 = (int) (currentTimeMillisecond%10); // num1 : 0 ~ 9
int num2 = (int)(currentTimeMillisecond % 10/ 10 );
//난수를 발생시키는 효과를 나타냄
Scanner input = new Scanner(System.in);
System.out.println("숫자 "+num1+"과 숫자 "+num2+"의 합계는 얼마인가?");
int answer = input.nextInt();
boolean bCorrect = ((num1+num2)==answer) ; //3항 연산 false나 true로 나타냄
System.out.println(num1+" + " + num2 + " = " + answer + "가 맞는가요?" + bCorrect );
}
}
System.currentTimeMillis();란 1970년 1월 1일부터 경과한 시간을 long값으로 리턴하며, 밀리세컨(1/1000)초값을 리턴합니다. 세컨드 = 밀리세컨드 / 1000 밀리초는 천분의1초 1000 밀리세컨드는 1초 |
3. 조건문
- if문
- 수식어 if(boolean) {A} else {B}
- boolean이 true면 A;실행 else면 B;실행
- if는 중첩이 가능하지만 가급적 중첩 if문은 사용하지 않는 것이 바람직하다
- -만약 중첩 if문을 사용해야 한다면 depth를 가능하면 낮게해야 함
- - depth는 중첩갯수 depth를 간략하게 계획하고 짜내야한다.
- if 문은 if문 / if - else문 / if - else if - else문이있다.
- if ( boolean) { A }
- if ( boolean ) {A} else {B}
- if (조건식1) { 조건식 1이 true } else if(조건식2){ 조건식 2가 true} else {조건식 1 및 조건식2가 false}
package p01.if_basic;
public class IfBasic2 {
public static void main(String[] args) {
int i = 10;
if(i>0) {
System.out.println("i는 양수입니다.");
}
//if문 다음에 오는 명령어가 1개만 있으면 {}를 사용안해도 됨
// => 비추천 / 명확하지가않음
if(i>0) {
System.out.println("i가 역시 양수입니다.");
}
if(i % 2 ==0 ) {
System.out.println("i는 2의 배수입니다.");
}
if(i % 2 == 1) {
System.out.println("i는 홀수입니다.");
}
if(i%5==0){
System.out.println("i는 5의 배수입니다.");
}
if((i%2==0)||(i%5==0)) {
System.out.println("i는 2의 배수이거나 5의 배수입니다.");
}
if((i%2 == 0) && (i%5==0)) {
System.out.println("i는 2의 배수이고 5의 배수입니다.");
}
else {
System.out.println("i는 음수입니다.");
}
}
}
package p01.if_basic;
//if ~ else if ~ else
public class IfBasic4 {
public static void main(String[] args) {
int score = 85;
if(score >= 90) {
System.out.println("A 등급입니다.");
}else if (score >=80) {
System.out.println("B 등급입니다.");
}else if (score >=70) {
System.out.println("C 등급입니다.");
}else if (score >=60) {
System.out.println("D 등급입니다.");
}else {
System.out.println("F 등급입니다.");
}
}
}
- switch
- switch문은 if~else if ~else로 코딩가능
- - 가능하면 switch문을 많이 사용하는 것을 추천
- - 유용한 적용 사례 : 주사위, 달력, 회사직급 처럼 등급이 정해져 있는 경우
package p02.switch_basic;
public class SwitchBasic {
public static void main(String[] args) {
System.out.println((int)(Math.random()*6));
//diceNumber : 0, 1, 2, 3, 4, 5 중에 1개
int diceNumber = (int)(Math.random()*6)+1;
System.out.println("diceNumber = "+diceNumber);
switch(diceNumber) {
case 1 :// if (diceNumber == 1)
System.out.println("주사위 1이 나왔습니다.");
break;
case 2 :// else if (diceNumber == 2)
System.out.println("주사위 2이 나왔습니다.");
break;
case 3 :// else if (diceNumber == 3)
System.out.println("주사위 3이 나왔습니다.");
break;
case 4 :// else if (diceNumber == 4)
System.out.println("주사위 4이 나왔습니다.");
break;
case 5 :// else if (diceNumber == 5)
System.out.println("주사위 5이 나왔습니다.");
break;
// case 6 :// else if (diceNumber == 6)
// System.out.println("주사위 6이 나왔습니다.");
// break;
default : //else
System.out.println("주사위 6이 나왔습니다.");
break;
}
}
}
수업듣고 궁금했던것 Math.random()을 int로 캐스팅하면 소숫점자리가 사라질텐데 *6을 한다고 1,2,3,4,5,6 이 나오는게 이해가 가지 않는다 ㅠㅜㅠ |
'수업기록(2022-07~2022-09) JAVA' 카테고리의 다른 글
20220801 수업기록 (0) | 2022.08.02 |
---|---|
20220729 수업기록 (0) | 2022.07.29 |
20220727 수업기록 (0) | 2022.07.27 |
20220726 수업기록 (0) | 2022.07.27 |
20220725 수업기록 (0) | 2022.07.26 |
Comments