반응형
01. 코드 특징
- 클래스가 여러개여도 위치 상관없이 파일명과 똑같은 클래스 먼저 실행이 원칙
- 메인 메소드 먼저 실행이 원칙
- 메소드 속에 메소드가 들어갈 수 없음 (호출 가능 but 생성 불가능)
- 메인이 아닌 것들은 호출해야만 출력 함
- 호출 순서가 곧 출력 순서
class AppleKorea{//실행안됨
public void apple() {
System.out.println("사과입니다.");
}
}
public class Test02 {
// 순서는 메인 메소드 -> 그리고 끝
public static void ppp() {
System.out.println("저는 ppp메소드 입니다.");
}
public static void print() {
ppp();// ppp 메소드 호출
}
public static void main(String[] args) {//메인 메소드
String str = "R";
print();// print 메소드 호출
//AppleKora 클래스 불러오기
AppleKorea appleKorea = new AppleKorea();
//메소드 실행하기
appleKorea.apple();
}
}
02. String의 특징
- 같은 값이 있으면 동일한 값을 저장 함
- 특이하게 변경 불가능한 값을 저장 함
- String 타입을 많이 쓰게 되면 딜레이 타임 존재 함
- 그를 막기 위해서 StringBuffer나 StringBuilder를 많이 씀
- 메모리에서 계속 자기를 지우면서 위치를 변경 함
- 참조 타입(R타입)은 값 비교가 아닌 객체를 비교 함
[ 활용 ]
String str = new String("admin");
String str2 = new String("admin");
str = "11111";
str = "22222";
str = "admin";//str2를 봄
//참조 타입에서는 값 비교가 아니라 객체 비교
System.out.println(str == str2);//true
03. FOR문, IF문 예제
Q1. 10진법으로 숫자를 입력받고 10진법과 2진법으로 출력하기
package jun07;
import java.util.Scanner; //입력받기 위한 명령어
public class Test01 {
public static void main(String[] args) {
Systems.out.print("숫자를 입력하세요\n입력 : ");
Scanner sc = new Scanner(System.in);
int input = sc.nextInt(); //사용자가 숫자 입력하고 엔터칠 때까지 입력대기
System.out.println("당신이 입력한 숫자는 " + input +"입니다.");
System.out.println("2진법으로는 " +Integer.toBinaryString(input) + "입니다.");
sc.close();//객체 닫기
}
}
Q2. IF문 활용하기
public class Test02 {
public static void main(String[] args) {
boolean bool = !(1 + 1 == 3);
int number = 10;
// if문은 제어문 중의 하나인 조건절
if (number < 5 && bool) {// if문의 바디 속
System.out.println("참일 때 실행합니다.");
} else {
System.out.println("거짓일 때 실행합니다.");
} // 탈출
}
}
Q3. 주민등록번호 뒷자리 입력했을 때 남자인지, 여자인지 판별하기
import java.util.Scanner;
public class Test03 {
public static void main(String[] args) {
System.out.print("주민번호 뒷자리 첫 글자를 입력해주세요.\n입력 : "
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
if (input % 2 == 0) {
System.out.println("당신은 여자입니다.")
} else {
System.out.println("당신은 남자입니다.")
}
sc.close();
}
}
Q4. 구간별로 점수를 입력했을 때 성적 출력하기
import java.util.Scanner;
public class Test04 {
public static void main(String[] args) {
System.out.println("점수를 입력하세요.");
// 100 ~ 90 : A
// 89 ~ 80 : B
// 79 ~ 70 : C
// 69 ~ 0 : F
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
if (input >= 90) {
System.out.println("A입니다.");
} else if (input >= 80) {
System.out.println("B입니다.");
} else if (input >= 70) {
System.out.println("C입니다.");
} else {
System.out.println("F입니다.");
}
sc.close();
}
}
Q5. 아이디/비밀번호 입력했을 때 출력하기
import java.util.Scanner;
public class Test05 {
public static void main(String[] args) {
//아이디 = admin, 비밀번호 = 01234567
String id = "admin";
String pw = "01234567";
String inputID, inputPW;
Scanner sc = new Scanner(System.in);
System.out.print("아이디 입력 : ");
inputID = sc.nextLine();
System.out.print("암호 입력 : ");
inputPW = sc.nextLine();
//p타입 비교일 때 사용하는 == '100 == 100' 정상적으로 동작
//r타입일 때 ' == ' 로 비교할 수 없음
//r타입에서 '=='의 의미는 객체가 똑같냐는 의미, 같은 위치에 있냐는 의미(값이 아니라)
//r타입은 밑에처럼 표현해줘야 함 (값을 비교) - equals (String용법)
if (id.equals(inputID) && pw.equals(inputPW)) {
System.out.println("로그인 되었습니다.");
} else {
System.out.println("입력 정보를 다시 확인해주세요.");
}
sc.close();
}
}
Q6. 1부터 10까지 모든 숫자 더하기
public class Test06 {
public static void main(String[] args) {
int sum = 0; //변수 선언
for (int i = 1; i <= 10; i++) {
sum = sum + i;
}
system.out.println(sum);
}
}
Q7. 부터 10까지 짝수만 더하기
public class Test07 {
public static void main(String[] args) {
int sum = 0; //변수 선언
for (int i = 1; i <= 5; i++) {
sum = sum + i*2;
}
system.out.println(sum);
}
}
Q8. 10진법 입력받아서 2진법으로 출력하기
public class Test08 {
public static void main(String[] args) {
int num = 11;
for (int i = 0; i < 8; i++) {
// 1. 2로 나눠서 나머지값을 출력
System.out.print(num % 2);
// 2. 2로 나눈 몫을 num에 저장하기
num = num / 2;
}
}
}
Q9. 3의 배수일 때 fizz, 5의 배수일 때 buzz, 3과 5 모두 배수일 때는 fizz buzz를 출력하기
public class Test09 {
public static void main(String[] args) {
for (int i = 1; i < 31; i++) {
if (i % 3 == 0 && i % 5 == 0) {
System.out.print("fizz buzz");
} else if (i % 3 == 0) {
System.out.print("fizz");
} else if (i % 5 == 0) {
System.out.print("buzz");
} else {
System.out.print(i);
}//if 끝
System.out.print(" ,");
}//for 끝
System.out.print("...");
}
}
Q10. *이 1개에서 5개까지 증가했다가 감소하기
for (int i = 0; i < 5; i++) {
//i = 0일 때 i가 5보다 작을 때까지 i+1하면서 증가
for (int j = 0; j <= i; j++) {
// j = 0일 때 j가 i보다 작거나 같을 때까지 j+1하면서 증가
System.out.print("*");
}
System.out.println("");// 엔터같은 효과
}
for (int i = 0; i < 5; i++) {// i 0
for (int j = 5; j > i; j--) {// j 5
System.out.print("*");
}
System.out.println("");
}
Q11. 다음의 모양으로 출력하기
for (int i = 0; i < 5; i++) {
for (int j = 4; j > i; j--) {
System.out.print("_");
}
for (int j2 = 0; j2 <= i; j2++) {
System.out.print("*");
}
System.out.println("");
}
Q12. 다음의 모양으로 출력하기
for (int i = 1; i < 10; i++) {
System.out.print(i + " ");
if (i % 3 == 0)
System.out.println();
}
참고자료
신용권, '혼자 공부하는 자바'
반응형
댓글