PrintEx01 print 하는 법
public class PrintEx01 {
public static void main(String[] args)
{
// println : print + 엔터
System.out.println("print");
System.out.println("print");
System.out.print("print");
System.out.print("print");
System.out.println("");
// 형식화된 출력
System.out.printf("정수는 %d\n", 123);
System.out.printf("%s는 %d", "실수", 456);
}
}
println : print + 엔터
print는 한줄로 붙어서 나옴
println은 엔터가 붙어서 나오고 print는 한줄로 붙어서 나온다.
printf는 %d등 지시자가 들어가 있는 것들을 출력할때 사용한다.
기본형(primitive type)
논리형 - Boolean
BooleanEx01
public class BooleanEx01 {
public static void main(String[] args)
{
boolean power = true;
//boolean power = "true";
//boolean power = TRUE;
System.out.println(power);
}
}
boolean power = "true"; 문자열 구분
boolean power = TRUE; 대소문자 구분
문자형 - char
CharEx01
public class BooleanEx01 {
public static void main(String[] args)
{
boolean power = true;
//boolean power = "true";
//boolean power = TRUE;
System.out.println(power);
}
}
영어 문자
한글 문자
아스키 코드
아스키 코드
유니코드
SpecialCharEx
public class SpecialCharEx {
public static void main(String[] args)
{
System.out.println('\'');
System.out.println("abc\t123\b456");
System.out.println('\n');
System.out.println("\"Hello\"");
System.out.println("c:\\");
}
}
CharEx02
public class CharEx02 {
public static void main(String[] args)
{
char c1 = 9;
char c2 = '9';
// c1 / c2
System.out.println("<" + c1 + ">"); // tab
System.out.println("<" + c2 + ">"); // 9
}
}
public class CharEx02 { public static void main(String[] args) { char c1 = 9; char c2 = '9'; // c1 / c2 System.out.println("<" + c1 + ">"); // tab System.out.println("<" + c2 + ">"); // 9 } }
인코딩과 디코딩
정수형 - bye, short, int, long
NumberEx01
public class NumberEx01 {
public static void main(String[] args)
{
int i = 1;
System.out.println("i :" + i);
byte b = 1;
short s = 1;
//long l = 1;
long l = 1L;
System.out.println("b :" + b);
System.out.println("s :" + s);
System.out.println("l :" + l);
}
}
정수형의 오버플로우
OverflowEx
public class OverflowEx {
public static void main(String[] args)
{
short sMin = -32768;
short sMax = 32767;
char cMin = 0;
char cMax = 65535;
System.out.println("sMin = " + sMin);
System.out.println("sMin-1= " + (short)(sMin-1));
System.out.println("sMax = " + sMax);
System.out.println("sMax+1= " + (short)(sMax+1));
System.out.println("cMin = " + (int)cMin);
System.out.println("cMin-1= " + (int)--cMin);
System.out.println("cMax = " + (int)(cMax));
System.out.println("cMax+1= " + (int)++cMax);
}
}
NumberEx02
public class NumberEx02 {
public static void main(String[] args)
{
// 이진법
// 8진법
// 10진법
// 16진법
// => 정수
int i2 = 0b1010;
int i8 = 030;
int i16 = 0xA4;
System.out.println(i2);
System.out.println(i8);
System.out.println(i16); //10100100
}
}
실수 - float, double
NumberEx03
public class NumberEx03 {
public static void main(String[] args)
{
// 실수 (. / 지수)
// float / double(기본형)
double d1 = 10.10;
System.out.println("d1 : " + d1);
float f1 = 10.10f;
System.out.println("f1 : " + f1);
double d2 = 6.02e2;
System.out.println("d2 : " + d2);
}
}
double 형
float를 썻는데 실수형이라 에러 난다
10.10f라고 적어 float형으로 강제 지정해주면 에러 안생김
StringEx01
public class StringEx01 {
public static void main(String[] args)
{
// 문자열(class(객체))
String str1 = "Hello String";
System.out.println(str1);
// + : 문자열 연결
String word1 = "Hello ";
String word2 = "World";
char c = '\t';
System.out.println(word1 + c + word2);
}
}
word1과 wor2사이에 \t로 인한 탭이 생성되어 한줄로 출력되었다
형 변환
형변환이란, 변수 또는 상수의 타입을 다른 타입으로 변환하는 것
형변환 방법
(타입) 피연산자
CastingEx01
public class CastingEx01 {
public static void main(String[] args)
{
short s1 = 10;
// 자동 형변환
int i1 = s1;
System.out.println(i1);
short s2 = (short)i1;
System.out.println(s2);
}
}
short에서 int로는 허용 용량이 증가하기 때문에 자동으로 변환이 된다
int에서 short로 가면 허용 용량이 적어지기 때문에 에러가 난다
int에서 short로 허용용량이 적어지지만 강제로 (short)i1을 지정하여 그로인해 잃어버리는 값이 생기더라도 short로 형변환 하겠다고 수동으로 지정해줬다. 여기서는 해당 용량이 허용수치 안에 있어서 잃어버린 데이터 값은 없지만 항상 허용용량을 생각해두고 작성해야 할 것이다. 디폴트로 항상 int로 놓고 개발을 많이들 한다
연산자
연산자(operator) 연산을 수행하는 기호(+, -, *, / 등)
피연산자(operand) 연산자의 작업 대상(변수, 상수, 리터럴, 수식)
연산자의 우선순위
1. 산술 > 비교 > 논리 > 대입.
2. 단항>이항>삼항>, 단한 영산자의 우선수위가 이항 연산자보다 높다.
3. 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다.
산술 변환
OperEx01
public class OperEx01 {
public static void main(String[] args)
{
int i1 = 20;
int i2 = 30;
int sum1 = i1 + i2;
System.out.println("sum1 : " + sum1);
short s1 = 20;
short s2 = 30;
// 일반 산술 변환 : 산술연산 최소단위 int
// 1. short를 int나 long으로 변환
//int sum2 = s1 + s2;
// 2. short를 사용하고 싶다면
short sum2 = (short)(s1 + s2);
System.out.println("sum2 : " + sum2);
// 나눗셈
int n1 = 2;
int n2 = 3;
System.out.println(n2 / (float)n1);
}
}
일반 산술 변환이란? 연산 수행 직전에 발생하는 피연산자의 자동 형변환
1. 두 피연산자의 타입을 같게 일치시킨다(보다 큰 타입으로 일치)
2. 피연산자의 타입이 int보다 작은 타입이면 int로 변환된다.
결과값은 1.5인데 결과는 1이 나온다. 실수로 표현이 안되는 것이다.
실수형으로 결과값이 1.5가 나왔다. 나눗셈은 애초에 float형을 가지고 시작하는게 좋다
OperEx02 - Short Circuit
public class OperEx02 {
public static void main(String[] args)
{
int a = 7;
int b = 2;
boolean result;
// Short Circuit
// true && true = ture
// true && false = false
// false -> false
result = (a -=3) > 6 & (b += 1) < 7;
System.out.println(result);
System.out.println(a + " / " + b);
}
}
short circuit 으로 계산하여 4 / 2 가 출력됨
Short Circuit이 아닌 비트 연산자로 돌리면 4 / 3이 나온다
OperatorEx26
public class OperatorEx26 {
public static void main(String[] args)
{
int a = 5;
int b = 0;
System.out.printf("a=%d, b=%d%n", a, b);
System.out.printf("a!=0 || ++b!=0 = %b%n", a!=0 || ++b!=0);
System.out.printf("a=%d, b=%d%n", a, b);
System.out.printf("a==0 && ++b!=0 = %b%n", a==0 && ++b!=0);
System.out.printf("a=%d, b=%d%n", a, b);
}
}
조건 연산자 ? : - if를 대체하는 연산자
OperatorEx32
public class OperatorEx32 {
public static void main(String[] args)
{
int x, y, z;
int absX, absY, absZ;
char signX, signY, signZ;
x = 10;
y = -5;
z = 0;
absX = x >= 0 ? x : -x;
absY = y >= 0 ? y : -y;
absZ = z >= 0 ? z : -z;
signX = x > 0 ? '+' : ( x==0 ? ' ' : '-');
signY = y > 0 ? '+' : ( y==0 ? ' ' : '-');
signZ = z > 0 ? '+' : ( z==0 ? ' ' : '-');
System.out.printf("x=%c%d%n", signX, absX);
System.out.printf("y=%c%d%n", signY, absY);
System.out.printf("z=%c%d%n", signZ, absZ);
}
}
조건문 - if, switch / if-else / if-else if
IfEx01 - 학점을 출력하는 프로그램
public class IfEx01 {
public static void main(String[] args) {
int hakjum = 75;
// 학점을 출력하는 프로그램 작성
if(hakjum >= 90) {
System.out.println("학점은 A");
} else if(hakjum >= 80) {
System.out.println("학점은 B");
} else if(hakjum >= 70) {
System.out.println("학점은 C");
} else if(hakjum >= 60) {
System.out.println("학점은 D");
} else {
System.out.println("학점은 E");
}
}
}
강사님 작성
public class IfEx02 {
public static void main(String[] args) {
int hakjum = 75;
// 학점을 출력하는 프로그램 작성
String result = "";
if(hakjum >= 90) {
result = "학점은 A";
} else if(hakjum >= 80) {
result = "학점은 B";
} else if(hakjum >= 70) {
result = "학점은 C";
} else if(hakjum >= 60) {
result = "학점은 D";
} else {
result = "학점은 E";
}
System.out.println(result);
}
}
SwitchEx01 : 입력된 달로 계절 맞추는 프로그램
public class SwitchEx01 {
public static void main(String[] args) {
int month = 10;
// 정수, 문자, 문자열 ...
switch (month) {
case 3 : case 4: case 5:
System.out.println("봄");
break;
case 6 : case 7 : case 8 :
System.out.println("여름");
break;
case 9 : case 10 : case 11 :
System.out.println("가을");
break;
default :
System.out.println("겨울");
break;
}
}
}
SwitchEx02 : 학점 입력 프로그램을 스위치 문으로
public class SwitchEx02 {
public static void main(String[] args)
{
int hakjum = 75;
// 학점을 출력하는 프로그램 작성
String result;
switch (hakjum) {
case 100 : case 99 : case 98 : case 97 : case 96 : case 95 :
case 94 : case 93 : case 92 : case 91 : case 90 :
result = "A 학점";
break;
case 89 : case 88 : case 87 : case 86 : case 85 : case 84 :
case 83 : case 82 : case 81 : case 80 :
result = "B 학점";
break;
case 79 : case 78 : case 77 : case 76 : case 75 : case 74 :
case 73 : case 72 : case 71 : case 70 :
result = "C 학점";
break;
case 69 : case 68 : case 67 : case 66 : case 65 : case 64 :
case 63 : case 62 : case 61 : case 60 :
result = "D 학점";
break;
default :
result = "E 학점";
break;
}
System.out.println(result);
}
}
강사님이 짠거
public class SwitchEx02 {
public static void main(String[] args)
{
int hakjum = 75;
// 학점을 출력하는 프로그램 작성
String result = "";
switch (hakjum/10) {
case 9 :
result = "A 학점";
break;
case 8 :
result = "B 학점";
break;
case 7 :
result = "C 학점";
break;
case 6 :
result = "D 학점";
break;
default :
result = "F 학점";
break;
}
System.out.println(result);
}
}
반복문 - for, while, do-while
FlowEx13 1부터 10까지의 합
public class FlowEx13 {
public static void main(String[] args)
{
int sum = 0;
for(int i = 1; i <= 10; i++) {
sum += i;
System.out.printf("1부터 %2d 까지의 합 : %2d%n", i, sum);
}
}
}
ForEx01 두 개 이상의 초기값, 증감식
public class ForEx01 {
public static void main(String[] args)
{
for(int i=1, j=10 ; i<=10; i++, j--) {
System.out.printf("%d \t %d%n", i, j);
}
}
}
중첩 for문
FlowEx18 구구단
public class FlowEx18 {
public static void main(String[] args)
{
for(int i = 2; i<=9; i++) {
for(int j = 1; j<=9; j++) {
System.out.printf("%d x %d = %d%n", i, j, i*j);
}
}
}
}
FlowEx21 i와 j값이 같은 값만 2중 반복문을 사용하여 출력하는 프로그램
public class FlowEx21 {
public static void main(String[] args)
{
for(int i = 1; i <= 5; i++) {
for(int j = 1; j <= 5; j++) {
if(i==j) {
System.out.printf("[%d, %d]", i, j);
}
else {
System.out.printf("%5c", ' ');
}
}
System.out.println();
}
}
}
while 문
while (조건식) {
// 조건식의 연산결과가 참(true)인 동안, 반복될 문장들을 적는다.
}
do-while 문
do {
// 조건식의 연산결과가 참일 때 수행될 문장들을 적는다.
} while (조건식); <- ;를 잊지 말 것
FlowEx29 369 프로그램 만들기
public class FlowEx29 {
public static void main(String[] args)
{
for(int i=1; i<=100; i++) {
System.out.printf("i=%d ", i);
int tmp = i;
do {
if(tmp%10%3==0 && tmp%10!=0) {
System.out.print("짝");
}
} while((tmp/=10) !=0);
System.out.println();
}
}
}
ForEx02 라벨링
public class ForEx02 {
public static void main(String[] args)
{
int n1 = 0;
one :
while(n1 <= 5) {
n1++;
int n2 = 0;
while(n2 <= 5) {
n2++;
if(n2 == 3) {
break one;
}
System.out.println(n1 + " : " + n2);
}
}
}
}
AtowerEx : 순차적으로 A부터 J까지 하나씩 증가하며 내려가는 프로그램 생성
public class AtowerEx {
public static void main(String[] args)
{
for(int i = 0; i<=9; i++) {
for(int j = 0; j<=i; j++) {
System.out.print((char)(j+65));
}
System.out.print("\n");
}
}
}
아스키코드를 이용하여 65가 A이고 +1 될때마다 B로 C로 ... J까지 더해져서 나오게 하는 방법이다
'Web & Mobile > JAVA' 카테고리의 다른 글
Lecture 25 - Java(6) 클래스, 접근제어자, 이클립스 환경 구축법 (0) | 2023.06.20 |
---|---|
Lecture 24 - Java(5) 생성자, 변수의 초기화, 상속, 인스턴스, 패키지, import, 클래스 (0) | 2019.04.19 |
Lecture 23 - Java(4) 변수와 메서드, 생성자 (0) | 2019.04.19 |
Lecture 22 - Java(3) (0) | 2019.04.18 |
Lecture 20 - Java(1) Windows Java 환경 구축 (0) | 2019.04.18 |
댓글