Integer Array

int[] integerArray = new int[3];
integerArray[0] = 1;
integerArray[1] = 2;
integerArray[2] = 3;

for (int i : integerArray) 
    System.out.println(i);

for (int j = 0; j < integerArray.length; j++) 
    System.out.println(integerArray[ j ]);

int k = 0;
while (k < integerArray.length) 
    System.out.println(integerArray[k++]);
// int array
// 만약 int value1를 for문에서 공유해 사용한다해도 
// intArray1[i]에 값이 들어가므로 각각 다른 입력값이 들어가게 됨
int value1 = 0;
int[] intArray1 = new int[3];
for (int i = 0; i < intArray1.length; i++) {
	System.out.print("Please enter int number: ");
	value1 = scan.nextInt(); // 10 20 30
	intArray1[i] = value1;
}
for (int v : intArray1)	System.out.println(v); // 10 20 30

// int value2를 for문에서 내부에서 매번 생성해서 사용한다해도 
// intArray2[i]에 값이 들어가므로 각각 다른 입력값이 들어가게 됨
int[] intArray2 = new int[3];
for (int i = 0; i < intArray1.length; i++) {
	System.out.print("Please enter int number: ");
	int value2 = scan.nextInt(); // 100 200 300
	intArray2[i] = value2;
}
for (int v : intArray2)	System.out.println(v); // 100 200 300

BasicCalculation

import java.util.Scanner;

// for, foreach, if/else-if, switch, array, 2D array
public class BasicCalculation {

    public static Scanner scan = new Scanner(System.in);

    // calc (using if/else-if)
    public static int calc(int x, int y, char op) {
        if (op == '+') return x + y;
        else if (op == '-') return x - y;
        else if (op == '*') return x * y;
        else if (op == '/') return x / y;
        else {
            System.out.println("op not found");
            return 0;
        }
    }

    // calc2 (using switch)
    public static int calc2(int x, int y, char op) {
        switch(op) {
            case '+': return x + y;
            case '-': return x - y;
            case '*': return x * y;
            case '/': return x / y;
            default:
                System.out.println("op not found");
                return 0;
        }
    }

    // get user input op[+,-,*,/]
    static public char getUserInputOp() {
        char value = '\0';
        do {
            System.out.printf("Please enter the operator [+,-,*,/]: ");
            try {
                value = scan.next().charAt(0);
                System.out.println("value=" + value);
            }
            catch (Exception e) {
                System.out.printf("Error! Please re-enter!\n");
                scan.next();
                continue;
            }
        } while (value != '+' && value != '-' && value != '*' && value != '/');
        return value;
    }

    public static void main(String[] args) {
        // for
        for (int i = 0; i < 5; i++) {
            System.out.println("i=" + i);
        }
        // while
        int j = 0;
        while (j < 5) {
            System.out.println("j=" + j);
            j++;
        }
        // do-while
        int k = 0;
        do {
            System.out.println("k=" + k);
            k++;
        } while (k < 5);
        // break (0~4)
        int x = 0;
        while (true) {
            if (x >= 5) break;
            System.out.println("x=" + x);
            x++;
        }
        // continue (0~4)
        int y = 0;
        while (y < 5) {
            y++; // (1~5)
            if (y % 2 == 1) // 홀수
                continue;
            System.out.println("y=" + y); // 짝수만 출력
        }
        // for-each
        System.out.print("Please enter two numbers: ");
        x = scan.nextInt();
        y = scan.nextInt();
        char[] ops = {'+', '-', '*', '/', '^'}; // char array
        for (char op : ops) {
            int z = calc(x, y, op);
            System.out.printf("z = %d %s %d = %d\n", x, op, y, z);
        }
        // 2D array
        int[][] numbers = {{49, 57}, {36, 29}, {88, 66}};
        for (char op: ops) {
            for (int i = 0; i < numbers.length; i++) {
               int r = calc2(numbers[i][0], numbers[i][1], op);
               System.out.printf("r = %d %c %d = %d\n", 
                       numbers[i][0], op, numbers[i][1], r);
            }
        }
        // user input
        System.out.print("Please enter two numbers: ");
        x = scan.nextInt();
        y = scan.nextInt();
        char op = getUserInputOp();
        int w = calc2(x, y, op);
        System.out.printf("w = %d %s %d = %d\n", x, op, y, w)
    }
}

Lab1

Lab1 프로젝트 디렉토리 안에 모든 파일(src/*.java & bin/*.class)와 보고서(3-4장정도 – 장수제한없음)를 넣고 Lab1_학번_이름.zip 압축한 후 e-learning(http://lms.dankook.ac.kr/index.jsp)으로 제출
java1-lab1

// https://www.ptable.com/?lang=ko
// number(int) symbol(String) name(String) weight(double)
// 1 H 수소 1.008
// 2 He 헬륨 4.0026
// 3 Li 리튬 6.94
// 4 Be 베릴륨 9.0122
// 5 B 붕소 10.81
// 6 C 탄소 12.011
// 7 N 질소 14.007
// 8 O 산소 15.999
// 9 F 플루오린 18.998
// 10 Ne 네온 20.180

Lab1 – Basics (method, command line arguments, Scanner)

1 – method
// PeriodicElement [number=” + number + “, symbol=” + symbol + “, name=” + name + “, weight=” + weight + “]” 을 출력하는 메소드 작성

2 – command line arguments

3 – Scanner 클래스를 이용하여 사용자에게 입력받아서 PeriodicElement 정보를 출력한다.

4 – 본인이 원하는 코드를 추가작성한다

1,2,3,4에 해당하는 부분을 /* 주석문 */으로 표시해준다.

Int String Conversion


//http://javadevnotes.com/java-integer-to-string-examples
// int => String type conversion
int i = -10; // -10
String s1 = Integer.toString(i); // "-10"
String s2 = String.valueOf(i); // "-10"
String s3 = new Integer(i).toString(); // "-10"
String s4 = String.format("%d", i); // "-10"
System.out.println("s1 = " + s1);
System.out.println("s2 = " + s2);
System.out.println("s3 = " + s3);
System.out.println("s4 = " + s4);

//http://javadevnotes.com/java-string-to-integer-examples
// String => int type conversion
String x = "-123"; // "-123"
int y = Integer.parseInt(x); // -123 (integer로 변환이 가능한 경우만 변환 가능 그 외엔 run-time exception error)
int z = Integer.valueOf(x); // -123 (integer로 변환이 가능한 경우만 변환 가능 그 외엔 run-time exception error)
int w = new Integer(x).intValue(); // 123 (integer로 변환이 가능한 경우만 변환 가능 그 외엔 run-time exception error) 
System.out.println("x = " + x);
System.out.println("y = " + y);
System.out.println("z = " + z);
System.out.println("w = " + w);

Numeric Data Type Conversion


byte bVal = 127;
int iVal = 100;
System.out.println(bVal+iVal); // 127 + 100 = 227
System.out.println(10/4); // int/ int 2.5 => 2
System.out.println(10.0/4); // double / int => double divided by double => 2.5
System.out.println((char)0x12340041);
System.out.println((byte)(bVal+iVal)); // 127 + 100 => (byte)227 => 1110 0011 => 1 + 2 + 32 + 64 – 128 => -29
System.out.println((int)2.9 + 1.8); // 2 + 1.8 => 2.0 + 1.8 => 3.8
System.out.println((int)(2.9 + 1.8)); // (int)4.1 => 4
System.out.println((int)2.9 + (int)1.8); // 2 + 1 => 3

Implicit/Explicit Type Conversion

//Implicit type conversion vs Explicit type conversion
int intVal = 32555;
byte byteVal = 25;
long longVal = intVal; // implicit type conversion
System.out.println(longVal); // 32555
intVal = (int) longVal; // explicit type conversion
System.out.println(intVal); // 32555
longVal = byteVal; // implicit type conversion
System.out.println(longVal); // 25
byteVal = (byte) longVal; // explicit type conversion
System.out.println(byteVal); // 25