Develop/곤부📙

<udemy> 자바 프로그래밍 / 섹션3

밀김 2023. 2. 11. 20:22
728x90

 

 

 

 

 

 

 

jshell 실행법, 사용법, 나가는법

 

 

 

 

- jshell에서 " "안에 숫자를 쓰면 문자열로 인식해서 그대로 반환한다

 

- 큰따옴표 안나오게 하려면 Sop 문장을 쓰고 괄호 하고 그 안에 큰따음표한뒤 문자열로 써주면 그대로 문자만 출력됨

 

 

 

 

 

 

 

<이스케이프 문자>

 

- 큰따옴표를 문자열로 탈출시키고 싶을땐 \ 역슬래쉬를 앞에 붙이면 된다

jshell> System.out.println("Hello \"World")
Hello "World

 

 

 

- 역슬래쉬를 문자로 한개 탈출시키고 싶을땐 \\ 두번, 두개를 출력하고싶으면 \\\\ 네번 써주면 됨

jshell> System.out.println("Hello \\")
Hello \

 

 

 

 

- 열을 나누고 싶을땐 \n 을 나누고 싶은 부분앞에 붙여주면 된다

jshell> System.out.println("Hello \nWorld")
Hello
World

 

 

- tap은 \t

jshell> System.out.println("Hello \tWorld")
Hello   World

 

 

 

 

<다양한 매서드들>

 

- random은 계속 다른 랜덤값을 출력해냄 / min은 최솟값

jshell> Math.random()
$6 ==> 0.31357681841592266

jshell> Math.min(1,2)
$7 ==> 1

 

 

 

 

 

<매개변수 = 파라미터>

jshell> System.out.printf("%d %d %d",1,2,3).println()
1 2 3
jshell> System.out.printf("%d+%d+%d=%d",5,6,7,18).println()
5+6+7=18

- %d를 쓰게돼면 차례대로 정수(int)값이 대입되어서 출력된다

뒤에 println()을 붙이는 이유는 printf만 쓰면 주솟값?같은게 지저분하게 같이 나옴 그래서 println으로 깔끔하게

문자열로 만들어줘서 최종값을 문자열로 출력되게 하는것이다

 

 

jshell> System.out.printf("Print %s", "안녕").println()
Print 안녕

- %s는 문자열 매개변수 출력

 

 

jshell> System.out.printf("%f+%f+%f",5.5,6.5,7.5).println()
5.500000+6.500000+7.500000

- %f는 실수형 매개변수 출력

 

 

 

 

 

<구구단 출력>

jshell> int i = 1;
i ==> 1

jshell> System.out.printf("%d * %d = %d", 5, i, 5*i).println()
5 * 1 = 5

jshell> i = 2;
i ==> 2

jshell> System.out.printf("%d * %d = %d", 5, i, 5*i).println()
5 * 2 = 10

- 변수 처음 선언 할때 꼭 앞에 무슨형인지 적어줘야함!! 아니면 에러남 variable=변수

 

 

 

- jshell은 초깃값을 자동으로 0으로 배정해준다(jshell에만 있는 기능)

 

 

 

 

 

<변수 이름 설정 방법>

/ 필수로 지켜야 할것/
- 변수 이름으로 사용할수 있는 문자는 오직 알파벳, 숫자, 달러 $, 그리고 밑줄 _ 
- 변수 이름이 숫자로 시작해서는 안된다
- 변수 이름이 키워드(int,float..)면 안된다

/ 요구사항 / 
- 변수 이름 첫번째는 소문자가 좋다
- 변수 이름만 보고도 뭘 말하는지 알수 있게, 과도한 약어 사용은 지양

 

 

 

<정수형 데이터 타입 이해>

 

- float < double 더 크기 때문에 둘다 같은 값을(ex; 4.5)넣었다 치면 float = 4.5f / double=4.5 이렇게 표시해야한다

작은쪽에서 구분자(f)를 넣어줘야함

 

- char(문자) 데이터타입은 ' ' 작은 따옴표를 사용하고 문자 한개만 들어갈수있다

'A' > 가능 /  'AB' > 불가능

 

 

 

<문자열>

 

- " " 큰따옴표로 표시하며, 1 + "2" 한다면 답은 문자열 "12"가 출력이 된다. 기본적으로 문자열이 식에 들어가있다면 

다른것들도 큰따옴표가 자동적으로 붙으면서 최종값이 문자열로 출력된다

 

- 물론 문자열과 문자열 결합도 가능하다 "ABC"+"EFG" = "ABCEFG"

 

- 문자열+ 변수 결합도 가능함

jshell> int i = 4
i ==> 4

jshell> System.out.println("AB"+i)
AB4

 

 

 

<값의 증가>

- number + 1 보다 ++,--라고 쓰면 편하게 증가,감소 시킬수 있다

jshell> int number = 8;
number ==> 8

jshell> number++
$2 ==> 8

jshell> number++
$3 ==> 9

jshell> number--
$4 ==> 10

jshell> number--
$5 ==> 9

 

 

- i = i+1 과 i += 1 은 같은 의미이다

i -= 1 / i *= 1 / i /= 1 도 모두 다 같은 맥락

jshell> int i = 1;
i ==> 1

jshell> i = i+1
i ==> 2

jshell> i +=1
$9 ==> 3

 

- i %= 4 역시 같은 맥락이다.

(% : 나눈뒤의 나머지값)

jshell> i = 9
i ==> 9

jshell> i %= 4
$18 ==> 1

 

 

 

 

 

 

 

<if 문>

//int = 10//

jshell> if(i>5)
   ...> System.out.println("i가 더 크다")
i가 더 크다

jshell> if(i<5)
   ...> System.out.println("i가 더 크다")

jshell> //거짓이면 아무 문장도 나오지 않는다//

 

 

 

 

 

<if문 예제문제들>

- 삼각형 세각의 합이 180이면 "정답"이 나오게 하기

(비교 연산자 == 를 써야함!!!!!!!!!! =(대입연산자) 는 값을 '저장'한다는 거니까)

jshell> int angle1,angle2,angle3
angle1 ==> 0
angle2 ==> 0
angle3 ==> 0

jshell> angle1=60
angle1 ==> 60

jshell> angle2=30
angle2 ==> 30

jshell> angle3=90
angle3 ==> 90

//변수 선언//

jshell> if(angle1+angle2+angle3 == 180)
   ...> System.out.println("정답")
정답

 

 

- %연산자를 이용해 짝수인 변수를 찾는 if문 만들기

( z % 2 == 0 해석하자면, z를 2로 나누었을때 나머지가 0이다. 즉, z는 짝수이다)

jshell> int z = 10
z ==> 10

jshell> if( z % 2 == 0 )
   ...> System.out.println("짝수")
짝수

 

 

 

 

 

<for문 구성>

초기치 설정, 조건, 업데이트

 

 

 

 

 

<for문(반복문)을 이용한 구구단 출력>

만들기 전에 int i; 나, int i = 0 으로 초기화를 해주고 해야함

jshell> for(i=1; i<=10; i++){
   ...>     System.out.printf("%d * %d = %d", 5, i, 5*i).println();
   ...> }
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50

 

 

 

 

 

 

< 문제 해설 >

 

- 구구단 단 바꾸는거는 변수 하나 만들어서 그 변수에다가 다른 단들 계속 바꿔서 넣으면 됨

3단이면 int table = 3 7단이면 int table = 7...

 

 

 

 

1,2,3은 쉬워서 안썼고..짝수출력은 나름 자랑스러워서 쓴건데..홀수제곱 어려버 ㅠㅠ

근데 문제 자체를 잘못 이해했음..;;

jshell> for(i=2; i<=20; i+= i){
   ...>     System.out.printf("2*%d=%d%n",i,2*i);
   ...> }
/* 2*2=4
2*4=8
2*8=16
2*16=32 */

 

↓풀이

 

jshell> for(i=2; i<=20; i = i+2){
   ...>     System.out.printf("%d\n", i * i);
   ...> }
/* 4
16
36
64
100
144
196
256
324
400  짝수! */

 

jshell> for(i=1; i<=20; i = i+2){
   ...>     System.out.printf("%d\n", i * i);
   ...> }
/* 1
9
25
49
81
121
169
225
289
361 홀수 !*/

i의 제곱이니께 *2가 아니라 i*i..i를 두번 곱하는거 = 제곱..이 멍텅아 

 

 

 

 

 

 

728x90