본문 바로가기
Back-End/Java

[java] 연산자와 Scanner

by LeeGangEun 2022. 1. 27.

컴퓨터는 1과0만 이해한다

1bit
1byte==8bit
1kbyte==1024byte
1mbyte==1024kbyte
1gbyte==1024mbyte      16gbyte=16*1024*1024*1024*8
1tbyte==1024gbyte
1pbyte==1tbyte

4byte==4*8bit==32bit
-------------------------------------------------------------------------------------------------------------------
메모리할당(Memory Allocate)
int a; => memory를 4byte할당하고 a라는 이름을 붙인다.
           a에는 정수를 저장한다.
char a; => memory를 2byte할당하고 a라는 이름을 붙인다.
   a에는 문자를 저장한다.
-----------------------------------------------------------------------------------------------------------------

클래스 : 첫글자 대문자
변수,함수 : 소문자 
상수 : 전부 대문자로

좋은 변수 이름 붙이는 언어 관습
1. s보다는 sum   - 목적을 나타내는 이름 붙이기
2. AVM보다 AutoVendingMachine - 충분히 긴 이름으로 붙이기

------------------------------------------------------------------------------------------------------------------------

c언어에서 포인터는 메모리주소를 가리키는 변수
java에서는 래퍼런스를 사용

포인터는 직접 Access
레퍼런스는 간접 Access : 레퍼런스값과 메모리주소가 매치되어 있음.

c언어에서 배열의 이름은 포인터다.

자바에서 배열의 이름은 레퍼런스다.
자바에서 인스턴스 이름은 레퍼런스다.
자바에서 문자열의 이름은 레퍼런스다.

인스턴스(실체)는 실행메모리에 만들어진다.
static은 인스턴스생성 없이 실행메모리에 올리는 역할.

 

----------------------------------------------------강사님 강의 메모------------------------------------------------------------

 

public class AssignmentIncDecOperator {
	
	public static void main(String[] args) {
		int a=3, b=3, c=3 ;
		
		a += 3; //a=a+3 = 6
		b *= 3; //b=b*3 = 9
		c %= 2; //c=c%2 = 1
		
		System.out.println("a=" + a + ", b=" + b + ", c=" +c );
		
	}
}

설명은 생략 ..

import java.util.Scanner;

public class ScannerEx {

	public static void main(String[] args) {
		System.out.println("이름, 도시, 나이, 체중, 독신 여부를 빈칸으로 분리하여 입력하세요");
		Scanner sc  = new Scanner(System.in);
		
		String name = sc.next();
		System.out.println("이름은" + name + ",");
		
		String city = sc.next();
		System.out.println("도시는" + city + ",");
		
		int age = sc.nextInt();
		System.out.println("나이는" + age + "살");
	
		double weight = sc.nextDouble();
		System.out.println("체중은" + weight + "kg");
	
		boolean isSingle = sc.nextBoolean();
		System.out.println("독신 여부는" + isSingle + "입니다.");
		
		sc.close();
		
	}

}
public class CircleArea {

	public static void main(String[] args) {
		final double PI = 3.14;
		double radius = 10.0;
		double circleArea = radius * radius * PI;
		System.out.println("원의면적=" + circleArea );
	}

}

아마 이번주까진 기초 코딩 예상.. 부연설명은 생략하겠음.

클래스 : 첫글자 대문자
변수,함수 : 소문자 
상수 : 전부 대문자로

좋은 변수 이름 붙이는 언어 관습
1. s보다는 sum   - 목적을 나타내는 이름 붙이기
2. AVM보다 AutoVendingMachine - 충분히 긴 이름으로 붙이기

 

오늘의 수업은 이것만 기억하면 될듯?! 꼭 지키자 ! 관례같은 것!

 

오늘의 연습문제 

1. 키보드로 원의 반지름을 입력 받아서 원의 면적을 구하는 
프로그램을 작성하시오. scanner사용

 

import java.util.Scanner;

public class raidus {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		final double PI = 3.14;
		
		System.out.print("원의 반지름 : " );
		
		double radius = sc.nextDouble();
		
		double circleArea = radius * radius * PI;
		
		System.out.println("원의면적 = " + circleArea );
	}
}

 

2. 이름, 학번, 학과를 키보드 입력을 받아서 출력하기.

import java.util.Scanner;

public class Scanner2 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("이름 : " );
		String name = sc.next();
		
		System.out.print("학번 : ");
		int hakbun = sc.nextInt();
		
		System.out.print("학과 : ");
		String hakgwa = sc.next();
        
		System.out.println("\n\n이름 : " + name);
		System.out.println("학번 :"  + hakbun);
		System.out.println("학과 :" + hakgwa);
	}
}

3. 국어,영어,수학 세과목을 키보드 입력을 받아서 평균구하기. scanner사용

import java.util.Scanner;

public class Scanner3 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("국어, 영어, 수학 점수를 차례대로 입력하세요.");
		int kor = sc.nextInt();
		int english = sc.nextInt();
		int math = sc.nextInt();
		
		double hap = kor + english + math;
		
		System.out.println("세과목의 평균값은 : "+ hap/3);
	}
}