class hello{
public static void main(String[] args){
int year=0;
int age=14;
System.out.println(year);
System.out.println(age);
year=age+2000;
age=age+1;
System.out.print(year);
System.out.print(age);
}
}
추가로, c언어와 같이 System.out.printf()형태로 입력가능하다.
단. \n 대신 %n사용
public class Main{
public static void main(String[] args){
int x=10, y=20;
int tmp;
System.out.println(("x: "+ x +"y: "+y));
tmp=x;
x=y;
y=tmp;
System.out.println("x: "+x+"y: "+y);
}
}
public static void main(String[] args){
final int MAX_SPEED=10;
int octNum=010;//8진수
int hexNum=0x10;//16진수
int binNum=0b10;//2진수
long big=100_000_000_000L;
long hex=0xFFFF_FFFF_FFFF_FFFFL;
//정수형인데 10진수면 생략 가능
float pi=3.14f; //f 대신 F가능
double rate=1.618d; //d대신 D가능
double pi1=3.14;
//실수형은 double만 생략가능
// float pi=3.14(x)
char ch='j' //문자 리터럴
String s="n" //문자열 리터럴
}
public static void main(String[] args){
LinkedHashMap map=new LinkedHashMap;
var map=new LinkedHashMap;
String str="";
String name=new String("");
}
var은 초기화 내역으로 데이터의 타입을 추론해 직접 타입형을 지정하지 않아도 된다.
추가로, String은 객체이므로 new를 통해 선언 초기화하며, String str처럼 선언할 수도 있다.
String의 특성
public static void main(String[] args){
String name="ja"+"va";
String str=name+21;
System.out.println(name); //java
System.out.println(str); //java21
System.out.println(" 1"+7); // 17
System.out.println(7+7+" 1");//14 1
System.out.println(" 1"+7+7);//177
}
println내 “ “을 통해 string형태가 들어간다면 이후에 들어가는 타입들을 전부 string으로 처리.
“”” “””의 형태로 \n을 사용할 수 있으며, .indet(num)을 통해 들여쓰기 가능. (\t,\n)허용
public static void main(String[] args){
String name= """
Hello
""".indent(2); //indent:들여쓰기
System.out.println(name);
}
import java.util.*;
public class scanner {
Scanner scanner=new Scanner(System.in);
System.out.print("두자리 정수를 하나 입력해주세요.>");
String input=scanner.nextLine();
int num=Integer.parseInt(input);
//int num=scaner.nextInt(); (input->num 과정 획일화)
System.out.println("입력내용: "+input);
System.out.printf("num=%d%n",num);
}
java.util.*을 불러서 scnner를 활용해 next로 입력받고. parse로 변환할 수 있다.
public static void main(String[] args){
String str="3";
System.out.println(str.charAt(0)-'0'); //문자열의 특정 문자 지정->정수
System.out.println('3'-'0'+1);//문자를 정수로
System.out.println(Integer.parseInt("3"+1)); //문자열->숫자로 변환
System.out.println("3"+1); //문자열로 변환
System.out.println((char)(3+'0')); //아스키 코드 '0'의 수를 정수 3에 더해서 "3"의 아스키 수변환
}
산술연산. ex) ‘+’와 같은 경우. byte(a) + byte(b)의 자료형이 올때 +는 정수로 형변환 후 처리하기에 명시적 형변환(btye) 해야함.
형변환(큰 타입→ 작은 타입)
public static void main(String[] args){
double pi=3.141592;
double shortPi=(int)(pi*1000+0.5)/1000.0;
System.out.println(shortPi);
}
public static void main(String[] args){
float i=0.01f;
double j=0.01;
//0.1의 근사값을 각 자료형의 변수에 저장.
System.out.println(i==j); //float과 double은 자료형에 따라 0.01을 정확히 저장 x
}
public static void main(String[] args){
String str= new String("abs");
boolean result=str.equals("abs"); //대소구분없이 비교(equalsIgnoreCase())사용
}
제약 조건
import java.util.*;
public class operator {
public static void main(String[] args){
int score=0;
System.out.print("당신의 점수를 입력하세요>(1~100)>");
Scanner scanner=new Scanner(System.in);
String tmp=scanner.nextLine();
score=Integer.parseInt(tmp);
char grade=switch(score/10){
case 9,10 ->'A';
case 8->'B';
case 7->'C';
default -> 'F';
};
System.out.println("당신의 학점은 "+grade+"입니다");
}
}
이름 명 : for()
public class Main{
public static void main(String[] args){
Loop1:for(int i=2;i<=9;i++){
for(int j=1;j<=9;j++){
if(j==5){
break Loop1; //continue Loop1;
}
}
System.out.println("pass");
}
}
}
배열은 같은 타입의 여러 변수를 하나로 묶는 것
- int[] score = new int[5]; // 5개의 int값을 저장할 수 있는 배열 생성
- 이때, score는 메모리의 위치를 나타내는 참조변수.
public static void main(String[] args){
int[] score=new int[]{50,60,70,80};
int[] arr={50,60,70};
int[] arr1;
arr1=new int[]{50,70};
//arr1={50,70,80}(x)
int result=add(new int[]{50,60});
//int result=add({50,60,70}) (x)
int[] a=new int[0];
int[] b=new int[]{};
int[] c={};
}
public static void main(String[] args){
//직접 for문을 통해 대입후, 참조 주소 대입.
int[] arr={10,20,30,40,50};
int[] tmp=new int[arr.length+2];
for(int i=0;i<arr.length;i++){
tmp[i]=arr[i];
}
arr=tmp;
//arraycopy로 tmp에 arr2 배열 저장.
int[] arr2={10,20,30,40};
int[] tmp2=new int[arr.length+2];
System.arraycopy(arr,0,tmp,0,arr.length);
//기존 참조,시작위치,옮길 참조, 시작위치, 얼만큼
}
난수 생성시. math.random() → 0~1사이 랜덤한 수 생성.
초기화와 동시에 출력
System.out.print(numArr[i]=(int)(Math.random()*10));
//같은 표현
=> numArr[i]=(int)(Math.random()*10);
System.out.print(numArr[i]);
String클래스는 char배열에 기능(메서드)을 추가한 것이다.
String[] name=new String[3]; //문자열 3개 저장할 수 있는 배열 생성.
char charAt(int index) // 문자열에 해당 위치 문자 반환
int length() // 문자열 길이
String substring(int fromt,int to) // from~to-1까지 반환
boolean equals(Object obj) // 문자열 내용이 같은 지
char[] toCharArray() //문자열을 문자 배열로 변환
String str=new String(chArr); //문자-> 문자열 변환.
int[][] arr; (정석)
int arr[][]; (o)
int[] arr[]; (o)
int[][] arr;
for(int i=0;i.lengt;i++){
for(int j:arr[i]){
// 2차원 배열은 이렇게 출력
}
}
int[][] arr= new int[5][];
arr[i]=new int[3]
//이와같이 배열의 세로크기만 정해두고 가로길이는 각각상이하게 가능.