package a_variable;//클래스의 위치
import java.util.Scanner;//ctrl+shift+o
public class Variable {//클래스: 데이터와 기능으로 구성되어 있음
public static void main(String[] args) {
//메서드: 명령문의 집합
//main메서드는 프로그램의 시작과 끝
//주석: 프로그램 코드로 인식하지 않는 문장(주로 코드를 설명하는데 사용)
//한줄 주석 : ctrl + shift +c 여러줄도 블럭 지정 후 가능
/*범위주석: ctrl + shift + /(해제:\)*/
//프로그래밍: 컴퓨터에게 일을 시키기 위해 일하는 과정을 만드는 것.
//재료: 데이터와 조작
데이터
1.기본형
-숫자
-문자
-논리(참거짓)
2. 참조형(데이터가 위치한 주소를 저장)
-배열(형태가 같은 여러개의 데이터를 묶어서 사용)
-클래스(형태가 다른 여거개의 데이터와 기능을 묶어서 사용)
데이터 타입+(구분가능한)이름을 알려주면 컴퓨터가 메모리에 공간을 만들어줌
-정수: byte(1), short(2), *int(4/약20억), long(8)
-실수: float(4/7자리), *double(8/15자리)
-문자: char(2)
-논리: boolean(1)
-문자열: String(4)
-영문자 대소문자, 한글, 숫자, 특수문자 (_,$)만 사용 가능
-숫자로 시작 안됨
-예약어 사용 못함: 자바에서 이미 사용하고 있는것은 사용 못함
-[낙타식 표기법 사용: 앞글자를 대문자로 사용.(mySampleVariable)]
-[클래스명의 첫글자는 대문자로 한다.]
변수 선언은 변수를 만드는 것(값을 저장한 공간 만들기)
int x; //;(세미콜론) : 문장의 마침표
long y;
float z;
char abc;
boolean boolean$;
String name123;
//스트링은 예약어가 아니라 클래스 이름이고 중복되지 않게 이름을 지어줘야 함
//9가지 타입을 모두 사용해 9개의 변수를 선언해주세용
byte a;
int b;
long c;
float d;
char e;
boolean f;
double g;
short h;
String name234;//글자갯수 상관 없음
초기화: 처음 값 저장
=(대입연산자) : 오른쪽의 값을 왼쪽의 변수에 저장
변수를 선언한 이후에는 변수의 이름만 가지고 변수를 사용
x=10; //타입에 맞는 값 저장
y=20L; //접미사 L을 붙여야 롱타입이 됨
z=3.14f; //접미사f가 붙어야 float타입
abc='가'; //따옴표안에 반드시 한글자 넣기. 따옴표로 감싸야지만 문자임
boolean$= true;// true, false
name123= "가나다라 abcd 1234";
//쌍따옴표로 문자열을 표현함, 한글자 여러글자 아무것도 작성 안하는것 모두 가능
일반적으로 선언과 초기화를 한문장으로함
```
int m=10;
m=20; //다른 값 저장
**형변환** : 타입을 바꾸는것
표현범위가 작은 타입에서 큰 타입으로 형변환은 생략할 수 있다.(자동으로 되는것)
큰타입에서 작은 타입으로 갈때는 데이터가 손실 될 수 있다.
정수보다 실수가 큰 값이다(float과 double이 long보다 큼)
기본형 타입 끼리만 형변환 가능(참조형-기본형 안됨)
char와 short는 값의 크기가 같아도 범위가 달라서 형변환 해야함
char ch ='a';// 문자로 표현되지만 실제로 숫자가 들어있어서 다른 값과 형변환이 가능함
int _int=10;
long _long=20;
float _float=0.122f;
double _double=0.444;
_int=(int)_long; //long타입이 int로 바뀜
_long=_int;
//표현범위가 작은 타입에서 큰 타입으로 형변환은 생략할 수 있다.
Q. 변수 3개를 선언해 변수의 타입과 다른 타입의 값으로 초기화 해주세요
_int=(int)_long;
_long=_int;
_float=(float)_double;
_double=_float;
-> 선언해줘야 에러가 일어나지 않음
char ch ='a';
// 문자로 표현되지만 실제로 숫자가 들어있어서 다른 값과 형변환이 가능함
short sh =10;
ch=(char)sh;
sh=(short)ch;
콘솔에 출력
System.out.print("출력"); //타입 상관없이 출력 가능
System.out.println("출력후 줄바꿈");
System.out.printf("출력 포맷 지정");
출력출력후 줄바꿈
출력 포맷 지정
#### 실행 단축키: ctrl+F11
탈출문자: 역슬레시
System.out.println("탭은\t4칸에 맞춰 띄워줍니다.");
System.out.println("즐바꿈을\n.");
System.out.println("\"쌍따옴표를 넣어준다.\"");
System.out.println("\\역슬래시 넣어준다.");
탭은 4칸에 맞춰 띄워줍니다.
즐바꿈을
.
"쌍따옴표를 넣어준다."
\역슬래시 넣어준다.
* 입력받기위한 클래스
**Scanner sc=new Scanner(System.in); **// Scanner는 참조형 타입 클래스임
//오류가 뜨는 것은 위치를 알려주지 않았기 때문이다. 임포트로 위치를 알려줘야함
(맨 위에 패키지 밑에 적어줌)
import java.util.Scanner;
//ctrl+shift+o 임포트 선언 단축키
**sc.nextLine();** 입력을 받아주는 것이며 ()가 있으면 메서드 이다.
사용자가 입력하기를 기다리고 사용자가 입력하고 엔터를 치면 결과값이 나옴
#### - 문자를 입력하고 싶을때
System.out.println("아무거나 입력해주세요>");
**String str = sc.nextLine(); //문자열 입력 받기**
System.out.println("입력받은 내용:" + str);
아무거나 입력해주세요>
dndhdkf
입력받은 내용:dndhdkf
#### - 숫자를 입력하고 싶을때
System.out.println("숫자를 입력해주세요>");
int num = sc.nextInt(); //정수 입력 받기
System.out.println("입력받은 숫자: "+ num);
숫자를 입력해주세요>
222
입력받은 숫자: 222
하지만 에러가 날수 있어서 Integer.parseInt을 붙혀야 한다.
System.out.println("숫자를 입력해주세요>");
#### int num = Integer.parseInt(sc.nextLine());
//int타입으로 형변환하는 것
System.out.println("입력받은 숫자:"+num);
숫자를 입력해주세요>
10
입력받은 숫자:10
자신의 이름을 저장할 변수를 선언하고 스캐너를 사용해 이름을 저장해주세용
System.out.println("이름을 입력해주세요>");
String myName = sc.nextLine();
자신의 나이를 저장할 변수를 선언하고 스캐너를 사용해 나이를 저장해주세요
System.out.println("나이를 입력해주세요>");
int myAge = Integer.parseInt(sc.nextLine());//문자를 int로 형변환 하는 것
//이름과 나이를 출력해주세요
System.out.println("이름:"+myName+ "/나이:"+myAge);
이름을 입력해주세요>
조수경
나이을 입력해주세요>
23
이름:조수경/나이:23
Q. 다음과 같은 프로그램을 만들어주세요
==========회원가입========
아이디>admin
비밀번호(4자리숫자)>1234
이름>홍길동
나이>99
키>185.5
========================= -> 입력 받는것
회원가입 완료!!
=======내 정보=============
아이디: admin
비밀번호: 1234
이름:홍길동
나이:99세
키:185.5cm -> 출력 받는것
Scanner sc = new Scanner(System.in);
System.out.println("========회원가입========");
System.out.println("아이디>");
String id = sc.nextLine();
System.out.println("비밀번호>");
int num = Integer.parseInt(sc.nextLine());
System.out.println("이름");
String name = sc.nextLine();
System.out.println("나이");
int age = Integer.parseInt(sc.nextLine());
System.out.println("키");
double hight = Double.parseDouble(sc.nextLine());
System.out.println("=====================");
System.out.println("회원가입 완료!");
System.out.println("=======내 정보=========");
System.out.println("아이디:"+id);
System.out.println("비밀번호:"+num);
System.out.println("이름:"+name);
System.out.println("나이:"+age);
System.out.println("키:"+hight);