멍하
돌아온 자바공부 2일차입니다.
첫번째 강의는 변수 선언, 오버플로우, 사칙연산입니다.
https://youtu.be/cOHYKJD_-bc?si=vritZ6DFrS37V5xw
public class Main {
final static double PI = 3.141592; //final은 변경 불가 static은 클래스에서 공유하는 파일
final static int INT_MAX = 14747367;
public static void main(String[] args) {
int intType = 100;
double doubleType = 150.5;
String stringType = "hello";
System.out.println(intType);
System.out.println(doubleType);
System.out.println(stringType);
int a = 1;
int b = 2;
System.out.println("a + b = " + (a + b));
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
System.out.println("a / b = " + (a / b));
}
}
출력결과
변수 선언, 사칙 연산은 다른 언어랑 비슷하게 사용하는 것 같으니
기억해둘만한 내용은 메인함수 밖에서 final로 상수 선언하는 부분!
public class Main {
final static int num = 0;
public static void main(String[] args) {
그리고 println으로 줄바꿈 출력을 한다정도!
public class Main {
public static void main(String[] args) {
int intType = 100;
System.out.println(intType);
그리고 언급이 있었으니 기록으로 남기는 오버플로우.
전자계산기에서 사칙(四則)연산의 결과가 레지스터 계수기로 다룰 수 있는 수의 범위에서 벗어나는 것. 또는 그 결과 최상위의 자릿수에서 생긴 초과한 수.
[네이버 지식백과] 오버플로우 [overflow] (원자력용어사전, 2011., 한국원자력산업협회)
간단하게 변수가 담을 수 있는 수 이상을 담게되면 한바퀴 셔플이 돌듯 가장 작은 값이 나온다는 의미인데
예를들어 이 동그라미 변수가 +100부터 -100까지 담을 수 있기 때문에 101을 담는 순간 -100이 나오게 됩니다.
변수에 따라 담을 수 있는 크기는 모두 다르니 상황에 맞는 변수를 사용하는게 중요하겠죠.
3강 자료형
자바 변수 상식
1. 변수 초기화를 하지 않으면 사용할 수 없음
2. 정수 변수에 실수를 넣으면 정수부분만 저장됨.
자료형(Date Types)
- C언어와 유사함(boolean, string제공됨)
- 소수점 표기 형식을 지수형식으로 출력할 경우 %e
- String은 char배열로 이루어짐 //4기가 정도 담을 수 있음
반복문
a부터 z까지 출력하기
public class Main {
public static void main(String[] args) {
for(char i = 'a'; i <= 'z'; i++)
{
System.out.print(i + " ");
}
}
}
진수 변환 //형식지정
public class Main {
public static void main(String[] args) {
int a = 200;
System.out.println("10진수 : " + a);
System.out.format("8진수 : %o\n", a); //8진수 형식지정자 %o
System.out.format("16진수 : %x", a); //16진수 형식지정자 %x
}
}
String의 substring함수 활용
public class Main {
public static void main(String[] args) {
String name = "John Doe";
System.out.println(name);
//substring(시작점, 마지막 부분)을 출력
System.out.println(name.substring(0, 3));
System.out.println(name.substring(3, 6));
System.out.println(name.substring(4, 8));
}
}
4강 연산자
https://youtu.be/LHRNa3OthRc?si=tquALOUGaUxdtFoX
+ | 더하기 |
- | 빼기 |
* | 곱하기 |
/ | 나누기(몫) |
% | 나누기(나머지) |
증가감소연산자
//증가감소연산자
//++num의 형식으로 변수의 앞에 있을 경우 해당 열이 실행되기 전에 증가/감소하고
//num++의 형식으로 변수의 뒤에 있을 경우 해당 열이 실행된 후에 증가/감소 함.
public class Main {
public static void main(String[] args) {
int a =10;
System.out.println(a); //10
System.out.println(++a); //11
System.out.println(a++); //11
System.out.println(a); //12
}
}
논리연산자
a == b | a와 b가 같은가 |
a > b | a가 b보다 큰가 |
a >= b | a가 b보다 크거나 같은가 |
a && b (and) | a와 b가 true라면 true |
a || b (or) | 둘 중 하나가 true거나 둘 다 true라면 true 둘 다 거짓이라면 false |
!a (not) | a가 true라면 false a가 false라면 true |
삼항연산자
조건 ? 참 : 거짓
조건이 참이면 참 위치의 값을 반환, 거짓이면 거짓 위치의 값을 반환
int max(int a, int b){ //더 큰 값을 반환하는 함수
int result = (a > b) ? a : b; // a가 b보다 크면 a반환, 아니면 b반환
return result;
}
pow 함수 활용
Math.pow(a, b); == a^b
5강, 6강 조건문&반복문
https://youtu.be/eWx-5x_xVjM?si=kgVF_HG1xbSNyyfJ https://youtu.be/x47Oll7WHJY?si=vJFNWKahBAetX5Z6
Primitive Type(원시 타입) & Reference Type(참조 타입)
- Primitive Type : 일반적인 자료형으로 실제 데이터 값을 저장(정수, 실수...)
- Reference Type : 메모리 주소로 객체를 참조함. (객체, 배열, 함수..)
조건문
public class Main {
public static void main(String[] args) {
String a = "I Love You.";
if(a.contains("Love")) //해당 단어를 포함하는가
{
//포함하는 경우에 실행.
}
else
{
//포함하지 않는 경우 실행.
}
}
}
+ 문자열(String)이 특정 문자열을 포함하는지 확인 equals()
public class Main {
public static void main(String[] args) {
String a = "Man";
int b = 0;
//String은 Primitive Type가 아니기 떄문에 equal()사용
if(a.equals("Man"))
{
System.out.println("남자입니다.");
}
if(a.equalsIgnoreCase("man")) //대소문자 구별 없이 사용
{
System.out.println("남자입니다.");
}
}
}
반복문
while문
public class Main {
public static void main(String[] args) {
int i = 1, sum = 0;
while(i <= 1000)
{
sum += i++;
}
System.out.println(sum);
}
}
for문
public class Main {
final static int N = 30;
public static void main(String[] args) {
for(int i = N; i > 0; i--)
{
for(int j = i; j > 0; j--)
System.out.print("*");
System.out.println();
}
}
}
무한루프
for(;;) //무한루프
{
break; //가장 가까운 반복문을 탈출
}
7강 기본 입출력
https://youtu.be/Jmrx1h8Ba0M?si=4B_R8U-qerAw2_Ti
키보드를 통한 정수 입력
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요 : ");
int i = sc.nextInt();
System.out.print("입력된 정수는 "+ i +"입니다.");
sc.close();
}
}
file 읽어오기
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
File file = new File("input.txt"); //파일 읽어오기
//파일 읽기 예외처리
try { //만약 파일이 있다면
Scanner sc = new Scanner(file);
while(sc.hasNextInt()) //다음 값이 있다면
{
System.out.println(sc.nextInt()*100);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("파일을 읽어오는 도중에 오류가 발생했습니다.");
}
}
}
'JAVA' 카테고리의 다른 글
[JAVA] 추상 클래스(abstract class) (0) | 2023.09.15 |
---|---|
[JAVA] 배열, 다차원 배열, 클래스, 상속 (0) | 2023.09.14 |
[JAVA] 생성자 (Constructor) (0) | 2023.09.14 |
[JAVA] 사용자 정의 함수, 반복 함수, 재귀 함수 (1) | 2023.09.14 |
[JAVA]자바 & 이클립스 설치 | Hello World 출력 (0) | 2023.09.05 |