<udemy> 자바 프로그래밍 / 섹션3
- 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를 두번 곱하는거 = 제곱..이 멍텅아