#2 JAVA_출력, 변수, 입력

정진형·2021년 11월 4일
0

JAVA

목록 보기
2/4
post-thumbnail

Java 1.8, Eclipse Photon, Window10

  1. 자바 프로그램의 구조
  • 특별한 표시가 없으면 메소드중 메인 메소드라 불리는 public static void main(String[]args) {} 영역에 소스코드를 작성한다
project
	package
    		class{
            		method(){
                    		소스코드
                        }
                }
                
 //특별한 표시가 없으면
 package lecture
 	public class Main01 {
    		public statix void main(String[]args) {
        	//메인 메소드 영역에 소스코드를 작성한다
        	}
    	}    

1-1. {} 영역, 바디

  • 해당하는 클래스, 메소드 등의 영역을 나타낸다.
public class 클래스명 {
	클래스의 영역
}

1-2. 주석

  • 해당하고 싶지 않은 문장 앞에 사용한다
  • 소스코드에 설명하는 글을 달 때(개발자들 간의 소통)
  • 기존에 사용하던 소스코드를 더 이상 사용하지 않을때
//한줄 주석
/*
*여러줄 주석
*/

1-3. ; 세미콜론

  • 실행문 마지막에 붙혀준다
  1. 출력
  • 개발자가 사용자에게 값을 보내어 표현해주는 행위
  • 보통 입력 - 처리 - 출력 순이다
    2-1. 출력메소드
System.out.print()	//출력
System.out.println() 	//출력 후 줄바꿈
System.out.printf()	//제어문자와 함께 쓴다
System.out.println("Hello Java!");

2-2. 제어문자

  • 따옴표 안에 존재한다
  • \와 함께 쓰인다
\n : 줄바꿈
\t : 탭
\' : '		//', ", \ 출력메소드에서 표시되지 않아서
\" : "		//제어문자와 함께 써야한다
\\ : \

2-3. 출력메소드 활용

System.out.print(10);	//숫자형은 그냥 쓴다
System.out.printf("\n홍길동\n");
System.out.printf("\t홍길동\t");
System.out.printl("자바");
System.out.prin("처음 배워요");
System.out.println("자바");
System.out.println("처음 배워요");
System.out.printf("\"코리아\"");
System.out.printf("엔터 : \\n");
System.out.println(1+1);	//출력메소드 안에서 연산 가능
System.out.println("1"+"1");	//"문자열" + "문자열" : 문자열을 연결
System.out.println(9+"월"+30+"일");
  1. 변수

3-1. 값

  • 상수, 리터럴, 데이터등 종류는 다양하다

3-2. 변수

  • 값을 담는 저장공간
    x = 10
    변수 대입연산자 값, 상수, ...
    (저장공간의 이름)

3-3. = : 대입연산자

  • 오른쪽에 있는 값을 왼쪽 저장공간에 넣어라
  • 수학의 =(equal)과는 다르다

3-4. 자료형

  • 저장공간의 종류, 타입
자료형TYPEBYTE
정수형byte1-128~127
short2-32768~32767
int40, -10, 244, ...(-21억~21억)
long80L, -10L, 244L, ...
실수형float40.0F, -124.144F, 202.11F, ...
double80.0, -124.144, 202.11, ...
문자형char2'0', 'A', '~', '가', ... 홑따옴표 안에 존재
문자열String길이에 따라 다름"0", "가다다", "Hello" 쌍따옴표 안에 존재
  • 정수형의 기본형은 int타입이고 범위가 큰 long타입은 L(l)로 표시를 해주어야 한다
  • 실수형의 기본형은 double입이고 float타입은 F(f)로 표시를 해주어야 한다

3-5. 변수의 선언

자료형 변수명 = 초기값;
자료형 변수명;
  • 변수 선언시 RAM
int x = 10;

x라는 이름의 저장공간이 RAM의 할당되고, 10이라는 값이 들어간다
공간이 만들어졌으므로 주소값이 부여되지만 알 수 없다

3-6. 변수 선언시 주의 사한

  • 같은 이름의 변수를 선언할 수 없다
  • 초기화를 해준다
  • 되도록 선언부(메소드 상단)에 한꺼번에 선언한다

3-7. 변수명 주의사한

  • 숫자는 맨 앞에 쓸 수 없다(1num -> num1)
  • 예약어는 쓸 수 없다
  • 공백을 쓸 수 없다
  • 특수 문자는 쓸 수 없다
  • 띄어쓰기는 _(언더바)나 띄어쓰기를 사용한다
    no_where
    nowHere
  • 되도록 소문자만 사용한다(첫들자는 무조건 소문자)
  • 되로록 한글은 사용하지 않는다
  • 뜻이 있는 명사형 단어를 사용한다(a, b, c, d -> num, hight, data)

3-8. 변수의 사용

  • 변수명을 그대로 사용한다;
int data = 10;

System.out.println(data);	//10(data변수가 가지고있는 값을 사용)
data = 5;			//data변수에 5 대입(data라는 이름으로 선언된 공간을 사용
data = data+5;			//data변수가 가지고 있는 값+5 해서 다시 data공간에 넣기

3-9. 변수의 사용 이유

  • 반복되는 같은 의미의 값을 쉽게 관리하기 위해서
  • 값에 의미부여를 하기 위해서

3-10. 서식문자(format 문자)

  • 따옴표 안에 존재한다
  • %와 함께 사용한다
%의미
%d정수(10진수)
%o정수(8진수)
%x정수(16진수)
%f실수
%c문자
%s문자열
%%%
printf("서식문자열",, ...)	//서식문자열은 서식문자가 포함된 문자열
				//ex)"%fcm" - 실수하나 뒤에 "cm"라는게 붙은 문자열 뒤에 올 값은 앞의 문자열에 있는 서식문자의 개수만큼 따라와야 한다.
System.out.printf("이름 : %s\n", "홍길동")	//제어문자 뒤에 붙은 \n은 전체 절이 끝나고 줄 바꿈이 된다

3-11. 변수의 활용

int x = 10;
char a = 'A';
float b = 10.24F;
double c = 10.24;
String d = "Hello";

//char ch = '';		//문자형은 값이 비어있으면 오류
char ch = ' ';		//공백을 넣어주어야 한다

String msg = "";	//문자열은 비어있는 값도 가능

System.outprintln('0'+5);	//문자형은 아스키코드값으로 인식이되서 연산이 가능하다
System.outprintln("0"+5);

int result = 10+5;	//대입연산자(=)는 10 더하기 5 는 15라는 뜻이 아닌 오른쪽에 있는 값을 왼쪽에 넣어주는 연산자이다
			//즉 15라는 값을 result라는 변수의 저장공간에 넣어주는 것이다
            
/*
*다음과 같이 출력
*------홍길동 님의 정보------
*이름: 홍길동
*나이 : 10살
*키 : 170.24
*----------\O/----------
*/

String name = "홍길동";
int age = 10;
double height = 170.24;

System.out.println("------" + name + " 님의 정보" + "------");
System.out.println("이름 : " + name);
System.out.println("나이 : " + age + "살");
System.out.println("키 : " + height + "cm");
System.out.println("----------\\O/----------");

//1 + 2 = 3
System.out.println(1 + " + " + 2 + " = " + (1+2));
System.out.println("%d + %d = %d\n", 1, 2, (1+2));

//10.2400
System.out.println(10.24);
System.out.printf("%4.f\n", 10.24);

int a= 10, b = 20, c = 30;	//같은 타입의 변수는 연달아 선언할 수 있다

System.out.println("%d %d %d\n", a, b, c);
System.out.println("%3$d %1$d %2$d\n", a, b, c);	//n$ n번째 변수를 출력

//String.format("서식문자열", 값, ...);
//넘겨준 서식문자열과 값들로 문자열을 만들어서 돌려주는 메소드(사용부분 통째로 문자열 값
//정수형 변수를 문자열 변수로 바꿔준다 "10 20 30"
String result = String.format("%d %d %d", a, b, c);
System.out.println(result);
  1. 입력
  • 사용자가 개발자에게 값을 넘겨주는 행위 값이 입력되지 않으면 다음으로 진행이 불가능하다

4-1. 입력상태

  • 커서가 깜빡이면서 값이 들어오기를 기다리는 상태 사용자가 개발자에게 값을 넘겨주는 행위 값이 입력되지 않으면 다음으로 진행이 불가능하다
  • 개발자가 할 수 있는 일은 사용자에게 입력상태로 만들어 주는것 까지이다 아래의 코드들은 사용자가 값을 입력했다고 가정하고 작성한다

4-2. . 하위 연산자

A.b		//A 안에 b , A 의 b

4-3. 입력 메소드

  • 입력받기 전 Scanner 클래스 타입의 변수를 선언해준다(입력준비)
  • 스캐너 클래스를 사용할땐 스캐너 클래스를 import 해주어야한다(자동완성 기능을 사용하면 자동으로 임포트된다
Scanner sc = new Scanner(System.in);	//입력 메소드가 포함된 스캐너 클래스를 객체와시켜주는 절로 자세한 내용은 클래스에서 알게된다
					//지금은 입력 메소드를 사용하기 위한 준비 작업 정도로 생각하자

//import 구문을 직접 작성해주거나 스캐너 클래스 호출시 자동완성을 해주면 자동으로 임포트된다
pakage lecture

import java.util.Scanner;

public class Main01 {

}
                    
next();	//통째로 사용자가 입력한 문자열 값 공백 또는 엔터를 구분점으로 판단하고 분리하여 입력을 받는다
	//홍 길동 이라고 입력하면 "홍"과 "길동"으로 분리하여 "홍"만 입력받는다
    	//따라서 값의 갯수만큼 next()를 사용해 주어야 한다
nextLine()	//통째로 사용자가 입력한 문자열 값 공백도 문자로 입력받는다
		//홍 길동 이라고 입력하면 "홍 길동"으로 입력받는다 엔터를 구분점으로 삼는다
        	//앞에 다른 입력이 있다면 의미없는 nextLine()을 미리 하나 써주어야 한다
nextInt()	//통째로 사용자가 입력한 정수 값

4-4. 입력 메소드 활용

Scanner sc = new Scanner(System.in);

//문자열의 초기값은"" 정수 0 실수 0.0, 0.0F 문자 ' '
String name = "";
String addr = "";
int age = 0;

System.out.print("이름 : ");
name = sc.next();		//홍길동을 입력하게되면 sc.next() 통째로가 "홍길동" 문자열 값으로 변한다.
System.out.print(name + "님 어서오세요~");

System.out.print("주소 : ");
sc.nextLine();			//의미없는 sc.nextLine()이 위에서 내려온 Enter를 먹는다
addr = sc.nextLine();		//정상입력 
System.out.print("사는곳 : " + addr);

System.out.print("나이 : ");
name = sc.nextInt();		
System.out.print("당신의 5년뒤 나이" + (age+5));

0개의 댓글