- 공부범위 -
1주차 1강 ~ 9강
문법
public class Main {
public static void main(String[] args) {
// write your code here
int number = 5;
System.out.println(number);
String sparta = "Hello Sparta";
System.out.println(sparta);
final int finalNumber = 1;
System.out.println(finalNumber);
finalNumber = 2;
System.out.println(finalNumber);
}
}
final int finalNumber = 1;
System.out.println(finalNumber);
sparta = "Goodbye Sparta";
System.out.println(sparta);
즉, 상수는 다른 값으로 재할당이 안 되지만 일반 변수는 재할당이 됨final int finalNumber
String sparta = "Hello sparta";
System.out.println(sparta);
int[] intArray =new int[] {1, 2, 3, 4, 5}; // int배열을 만들면서 1,2,3,4,5로 초기화한 코드
System.out.println(intArray); // intArray에 노란색 밑줄이 있는데 거기에 Alt+Enter 를 하면
int[] intArray = new int[] {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(intArray)); // 이렇게 변함
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
// write your code here
int[] intEmptyArray = new int[5];
System.out.println(intEmptyArray);
}
}
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
// write your code here
int[] intEmptyArray = new int[5];
System.out.println(Arrays.toString(intEmptyArray)); //intEmptyArray에서 Alt+Enter하면 이렇게 변함. 이렇게 변한 상태로 실행해줘야 정상적인 값이 나옴.
}
} // 아무것도 할당하지 않은 방법
// intEmptyArray로 선언 해 준 것
int[] intEmptyArray = new int[5];
System.out.println(Arrays.toString(intEmptyArray));
// 선언과 동시에 1, 2, 3, 4, 5로 초기화 해 준 것
int [] intArray = new int[] {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(intArray));
// String으로 선언만 한 Array
String[] stringEmptyArray = new String[5];
System.out.println(Arrays.toString(stringEmptyArray));
// 선언과 동시에 초기화 해 준 것
String[] season = {"봄", "여름", "가을", "겨울"};
System.out.println(Arrays.toString(season));
System.out.println(season[season.length -1]);
0번 부터 세기 때문,,char c = 'S';
int number = 10;
System.out.println(c);
System.out.println(number);
char c = 'S'; // 아스키코드로 83
int number = 10;
System.out.println(c + number);
char c = 'S'; // 아스키코드로 83
int number = 10;
System.out.println(c + "" + number);
char c = 'S';
int number = 10;
System.out.println(c + "\n" + number); // '\'백슬러시는 행을 바꿔줘 라는 의미
int[] intEmptyArray = new int[3];
System.out.println(Arrays.toString(intEmptyArray));
int [] intArray = new int[] {10, 20, 30};
System.out.println(Arrays.toString(intArray));
System.out.println(intArray[intArray.length -1]);
지저분혀~~~
int[] scores = new int[] {10, 20, 30};
System.out.println(scores[scores.length -1]);
public class Main {
public static void main(String[] args) {
// write your code here
int num1 = 10;
int num2 = 3;
boolean bool1 = true;
boolean bool2 = false;
num1 += num1;
num2 *= num1;
System.out.println(num1); // 20
System.out.println(num2); // 60
System.out.println(bool1 && bool2); //false
}
}
if문
int check = 100;
int num1 = 150;
if (num1 > check) {
System.out.println("100보다 큰 수 입니다.");
// if (50 > 100) {} 이렇게 if가 해당이 안 될 때에는 출력이 안 됨.
// 논리형에 맞게 true 값이 안 나오면 sout 안의 값을 실행하지 않는다.
int check = 100;
int num1 = 51; // 50으로 바꾸면 아무 값도 안 나옴.
// 150으로 바꾸면 첫 번째 값이 출력됨. 순서대로 진행되기 때문
if(num1 > 100) {
System.out.println("100보다 큰 수 입니다.");
}else if(num1 > 50) {
System.out.println("50보다 큰 수 입니다. 100보다 작거나 같습니다.");
switch문
어떤 조건들을 미리 계층적으로 선언해놓는 방법
char score = 'A';
switch(score) {
case'A':
System.out.println("A등급 축하합니다.");
break; //뒤에 있는 case문들을 확인하지 않고 이 switch블록을 탈출하겠다. (써주는 편이 좋음)
case'B':
System.out.println("B등급");
break;
case'C':
System.out.println("C등급");
default: // A, B, C case가 아닌 경우에는 이 값으로 출력해줘
System.out.println("C보다 아래 등급입니다.");
char score = 'B';
switch(score) {
case'A':
System.out.println("A등급 축하합니다.");
case'B':
System.out.println("B등급");
case'C':
System.out.println("C등급");
default:
System.out.println("C보다 아래 등급입니다.");
삼항 연산자
int a = 5;
String result = ( a < 10 ) ? "10보다 작습니다." : "10보다 큽니다"; // ?의 앞이 true이면 "":의 값을 실행, false이면 :""의 값을 실행 // ?앞 괄호 굳이 안 해도 됨.
System.out.println(result);
public static void main(String[] args) {
Scanner sc = new Scanner([System.in](http://system.in/));
int score = sc.nextInt();
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // System.in : system input 을 받을 거야
int score = sc.nextInt(); // sc.nextInt() : 다음에 들어오는 숫자를 받을 거야
}
}
public static voidmain(String[] args) {
Scanner sc =newScanner(System.in);
int score = sc.nextInt();
if(score <= 100 && score > 90) {
System.out.println("A등급");
}else if(score <= 90 && score > 80) {
System.out.println("B등급");
}else if(score <= 80 && score > 70) {
System.out.println("C등급");
}else{
System.out.println("F등급");
}
// 이대로 하면 아무 것도 출력이 안 됨
// 중간에 로딩될 때 점수를 입력하면 그에 맞는 값이 출력됨
무조건 switch문 일 줄 알았는데 if문이라니…import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // System.in : system input 을 받을 거야
int score = sc.nextInt(); // sc.nextInt() : 다음에 들어오는 숫자를 받을 거야
switch (score/10) {
case 10:
System.out.println("A등급");
break;
case 9:
System.out.println("A등급");
break;
case 8:
System.out.println("B등급");
break;
case 7:
System.out.println("C등급");
default:
System.out.println("F등급");
}
}
// 이렇게 하면 90점도 A등급 뜸...
// switch문 안에 if문 쓸 수 있다는데 이러면 너무 지저분하지 않나?
어떻게 하면 switch문으로도 표현할 수 있을지는..... 내일 하겠음ㅜ 피곤해case 10:
System.out.println("A등급");
break;
case 9:
System.out.println("A등급");
break;
// 위처럼 적는 것보다 아래처럼 적는 게 나음
case 10:
case 9:
System.out.println("A등급");
break;
반복문
: 반복해서 처리해야할 것들을 로직으로 한 번만 만들어놓고 코드가 반복해서 실행하게 만드는 것
코드 설명
for(int i = 0; i < 10; i++) {
// ;왼쪽에 있는 것, int i = 0은 초기화 블럭
// for문에 진입할 때 한 번 실행하는 구문을 여기다 써 주면 됨 (i를 1부터 10까지 반복)
//중간(i < 10)은 조건문,이 반복문을 괄호 안이 참일 때 수행하게 됨
//한 번 수행이 되고 난 다음,그 다음 조건을 체크해기 전에 수행해 줄 구문을 입력하면 됨,지금은 i값에 숫자 1을 더한 연산을 넣음
int sum = 0;
for(int i = 0; i < 10; i++) {
sum += (i +1);
}
System.out.println(sum);
// int i = 0, 0은 10보다 작으니까 참, 참이면 sum += (i +1)을 수행함, sum은 1이 됨.
// i++확인, i가 1이 됨, 참, sum수행, sum은 2
int sum = 0;
for(int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println(sum);
// 이게 직관적일 것 같은데 왜 이렇게 안 하나?
// 컴퓨터의 index는 0부터니까 그냥.. i=0부터 함, 작거나 같다도 그냥 작다라고 하는게 개발자들에게는 더 직관적인 표현임.
int i = 0;
int sum = 0;
while (i < 10) { // while은 조건이 하나만 옴.
sum += (i +1);
i++;
}
System.out.println(sum);
// 만약 i를 증가시켜주지 않으면?
// 아무것도 출력이 안 됨. 무한루프에 빠짐.
int i = 0;
int sum = 0;
while(i < 10) {// while은 조건이 하나만 옴.
sum += (i +1);
i++;
if(i == 5) {
break; // 중간에 빠져나오고 싶으면 이렇게 만들어 주면 됨.
}
}
System.out.println(sum);
int i = 0;
int sum = 0;
// 5를 빼고 계산하고 싶을 때,
while(i < 10) {
if(i == 4) {
i++;
continue;//이 반복문 블럭의 밑 부분을 한 번 스킵하고 그 다음을 실행해
}
sum += (i +1);// i가 4일 때에는 수행하지 않음, i +1은 5, 5가 빠지게 됨
i++;
}
System.out.println(sum);
int i = 0;
int sum = 0;
do {
sum += (i +1);
i++;
} while (i < 10); // 우선 do를 수행하고 while의 조건에 맞으면 다시 처음으로 가서 수행해줘
System.out.println(sum);
// days는 String의 배열
String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
for (String day: days) { // days 배열에 있는 String 값을 하나씩 꺼내서 이 String 타입의 day 변수에 할당해 줌
System.out.println(day); // 그리고 한 번씩 실행시켜줌
퀴즈
1부터 100까지의 합을 구하는 반복문 코드를 작성해보자
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 0; i < 100; i++) {
sum += (i +1);
}
System.out.println(sum);
}
}
5초부터 시작하는 카운트 다운을 만들어보자
public class Main {
public static void main(String[] args) {
for (int i = 5; i >= 0; i--) {
System.out.println("카운트다운: " + i);
}
}
}
1부터 30까지 홀수의 합과 짝수의 합을 구하고 각각 출력해보자
int sum = 0;
int odd = 0;
for (int i = 0; i < 30; i++) {
if ((i/2) == 0){
sum += (i +1);
} else {
odd += (i +1);
}
System.out.println("짝수 합: " + sum);
System.out.println("홀수 합: " + odd);
}
int sumOdd = 0;
int sumEven = 0;
for (int i = 0; i < 30; i++) {
int value = i + 1;
if( value % 2 == 0 ) {
// even
sumEven += value;
} else {
// odd
sumOdd += value;
}
System.out.println("Odd: " + sumOdd);
System.out.println("Even: " + sumEven);
int sumOdd = 0;
int sumEven = 0;
for (int i = 0; i < 30; i++) {
int value = i + 1;
if ( value % 2 == 0 ) {
// even
sumEven += value;
}else{
// odd
sumOdd += value;
}
}
System.out.println("odd: " + sumOdd);
System.out.println("even: " + sumEven);
// for문 뒤에 sout을 입력했어야 했는데 if문 뒤에 입력해서 개별적인 값이 나왔나 봄...
오류..?
Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
See https://docs.gradle.org/7.4/userguide/command_line_interface.html#sec:command_line_warnings
이건 또 왜 뜨는데,,,, 왜 구글에서 하란대로 해도 뜨는데,,, 걍 포기함.. 뭐 거슬리기만 하는 거니까,, 보다보니까 눈에 안 띄는 것 같기도 하구,,, 에휴
compileJava FAILED
이게 자꾸 떠서 이것저것 만져보다 결국 다시 삭제하고 알려준 방식대로 깔아서 했더니 해결... 아마 버전이 안맞았던 듯..?
이제 문제 없나.. 했더니 한글 깨짐ㅎㅎㅎ 이것저것 또 만져보고 하다가 이것도 그냥 포기했다!!! 한글을 안 치면 되지 않을까,,,, 진짜 왜 이러는데 << 끝나고 산책갔다가 마저 다시 공부하려고 하니까 갑자기 됨... 뭐지????????
느낀 점
자랑하고 싶은 것