Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- BEANS
- 페이지 이동
- "
- Import
- 미래직장
- 향상된 for문
- iframe
- 자바빈즈
- opener
- 동기부여
- session.removeAttribute
- static
- 파일호출
- 동기 부여
- scanner
- 빈즈
- target
- 버리자
- \
- ;
- javaBeans
- 영감
- Alert
- session.getAttribute
- session.setAttribute
- 로그인화면
- 팝업창
- 페이지이동
- 파일 호출
- 데이터사이언스
Archives
- Today
- Total
갈림길 이정표
[4. 조건문과 반복문] 본문
4.1 코드 실행 흐름 제어
4.2 조건문 (if 문, switch문)
package pack1;
import java.util.Scanner; //다른 패키지 가져올 때 import (C언어는 using)
public class Test4_if {
// alt + 위/아래
// ctrl + alt + 위/아래
public static void main(String[] args) {
// // 외부에서 값 얻기1
//// String[] : 문자열을 [여러개] 받을 꺼야
//// String arg1, String arg2, ... 하나씩 받을 꺼야 (0번째가 첫번째 데이터)
// if(args.length == 0) {
// System.out.println("외부에서 값 얻기 실패"); //거짓
//// System.exit(0); // 강제종료
// }else {
// System.out.println("args : " + args[0] + " " + args[1]);
// }
//
// // 외부에서 값 얻기2 : 키보드
// Scanner sc = new Scanner(System.in);
// System.out.print("상품명 입력 : "); //ln은 커서 위치 다음줄
// String irum = sc.next();
// System.out.print("가격 입력 : "); //커서 위치 바로옆
// int nai = sc.nextInt();
// System.out.println(irum + "의 가격은 " + nai);
//java.util 모델로.. -> 그러면 import 문 자동 삽입
//하이브리드 웹 쓰면 웹을 모바일 버전으로
// 조건 판단문 if
int num = 2;
if(num > 1) {
System.out.println("크군요");
System.out.println("자바만세");
} //블럭화 시켜야 여러 명령 실행 가능 , 블럭 없으면 한 statement만 인식 실행 , 줄맞춤은 상관 없지만 python은 상관 있음
//if(true): 맨날 true , if(false) 맨날 false
//때문에 ()안에는 T,F를 구분할 수있는 논리 조건문 써야됨
System.out.println();
num = 5;
if(num < 3) {
System.out.println("작군요");
System.out.println("참");
}else {
System.out.println("작지 않아요");
} // 한 문장 있을 때는 {}생략 가능하지만 if문에선 가능한 쓰는 게 좋음
System.out.println();
int jumsu = 67; // 변수 : 기억장소의 이름, 67 : 상수
if(jumsu >= 70) {
if(jumsu >= 90) {
System.out.println("우수");
}else {
System.out.println("보통");
}
}else {
if(jumsu >= 50) {
System.out.println("저조");
}else {
System.out.println("엄청 저조");
}
}
System.out.println();
jumsu = 75;
String re = "";
if(jumsu >= 90) {
re = "수";
}else if(jumsu >= 80) {
re = "우";
}else if(jumsu >= 70) {
re = "미";
}else if(jumsu >= 60) {
re = "양";
}else { //마지막 조건이 너무 명확할 때 (jumsu < 60)
re = "가";
}
System.out.println("점수는 " + re);
//문제: 키보드로부터 상품명, 수량, 단가를 각 각 입력받아 금액 (수량 * 단가)을 구하시오
//조건: 금액이 5만원 이상이면 금액에 10%를, 그 외에는 금액에 5%를 세금으로 출력
//출력 모양: 상품명: 금액: 세금:
System.out.println("---problem---");
Scanner scan = new Scanner(System.in); //'Scanner' '이름' : '키보드입력데이터' '입력데이터집합명'
System.out.print("상품명 입력 : ");
String sangpum = scan.next();
System.out.print("수량 입력 : ");
int suryang = scan.nextInt();
System.out.print("단가 입력 : ");
int dangga = scan.nextInt();
int gumach = suryang * dangga;
double saegum;
if(gumach >= 50000) {
saegum = gumach * 0.1;
}else {
saegum = gumach * 0.05;
}
System.out.println("---Answer---");
System.out.println("상품명 : " + sangpum + "\n" + "금액 : " + gumach + "원\n" + "세금 : " + saegum + "원\n");
System.out.println("프로그램 종료");
}
}
package pack1;
import java.util.Scanner;
public class Test5_switch {
public static void main(String[] args) { // 꼭 수기로 쓰는 연습하기!
//switch (조건 판단문)
int nai = 45;
nai = nai / 10 * 10; // 10대 , 20대 표현
System.out.println("nai : " + nai);
switch(nai) {
case 20:
System.out.println("20대");
System.out.println("청춘");
break; //꼭 막아라 안 막으면 줄줄이 명령 수행
case 30:
System.out.println("30대");
break; //안 적어도 되지만 습관적으로 막아라 (다른 언어에서는 막기때문)
default: //이도 저도 아닌 것들 마치 else
System.out.println("기타");
break;
}
System.out.println();
String jik = "과장";
switch (jik) {
case "대리":
System.out.println("이하 대리");
break;
case "과장":
System.out.println("와우 과장");
break;
}
System.out.println();
// double time = Math.random(); //난수
// int time = (int)(Math.random() * 10);
int time = (int)(Math.random() * 4) + 8; //0부터 시작하고 1씩 증가되는 랜던 숫자변수 4개 + 8
// System.out.println(time);
switch(time ) {
case 8:
System.out.println("출근하자");
//break;
case 9:
System.out.println("회의하자");
//break;
case 10:
System.out.println("program 짜자");
//break;
default:
System.out.println("휴식");
}
System.out.println("\n해당 달의 날 수 출력--------");
//키보드로 년, 월을 각 각 입력받아 해당 년 월의 날 수 출력, 단 윤년 체크.
//윤년 = 해당 년이 4의 배수이고 100의 배수가 아니거나 400의 배수 (29일)
//Scanner 수기로 쓸거면 꼭 import 도 수기로 쓰기!
Scanner sc = new Scanner(System.in);
System.out.print("년 입력 : ");
int year = sc.nextInt();
System.out.print("월 입력 : ");
int month = sc.nextInt();
if (month < 1 || month > 12) {
System.out.println("월은 1~12 사이만 허용!");
System.out.println("안녕!!!");
System.exit(0); //입력 자료 오류 (예상 허용 범위를 벗어날 경우)
}
int day = 28;
String msg = "평년";
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {//해석: 4의 배수 일 경우
day = 29;
msg = "윤년";
}
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: // 반복되는 case 결과는 이렇게 case만 줄줄이 나열 후 결과 값
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
}
System.out.println(year + "년 " + month + "월 " + day + "일" + " " + msg);
System.out.println("----종료----");
}
}
// if 와 switch 는 개발자 마음
4.3-1 반복문 (for문)
package pack1;
import java.util.Scanner;
public class Test6_for {
public static void main(String[] args) {
//반복문 for(초기치; 조건; 증가치){}
// int a; //전역변수 (유지 보수가 힘듦)
// for(int a = 1; a <= 5; a = a + 1)
int a;
int hap=0; //누적 기억장소: 초기화 권장
for(a = 1; a <= 5; a = a + 1) { //마지막 세미클론(;) 쓰면 안돼
//for문 내에서 유효한 변수 (지역변수) 최대한 지역변수 활용하자! 그래야 조립식 가능
System.out.print(a + "\t"); // \t: tab간격 (이스케이프 코드)
//해석: 초기치 만족시 해당 코드 실행
// 증가치 후 조건 만족(참)시 해당 코드 실행 /아니면(거짓) exit
// a = 3 이렇게 치면 무한 반복 -> '절대' 하지 마라
hap += a;
}
//for문 : 반복 횟수가 명확할 때, 초기 변수값 결과가 계속 바뀜
//참고로 a=a+1 와 a+=1, ++a, a++ 모두 같다 (증가량이 1보다 크면 다름) -> 자바와 C만 있는 기능
System.out.println("\na:" + a);
System.out.println("5까지의 합은" + hap);
System.out.println("-------");
for(int i = 65; i <= 90; i++) { //보통 for변수는 i로 쓴다
System.out.print((char)i + " "); // casting 강제 형변환
}
System.out.println();
for(int i = 'A'; i <= 'Z'; i++) {
System.out.print(i + " ");
}
System.out.println();
for(int i = 10; i > 1; i -=2) {
System.out.print(i + " ");
}
System.out.print("\n(");
for(int ytn=0, tv=5; ytn <= 5; ytn++, tv++) {
System.out.print(ytn + " " + tv + " : ");
}
System.out.println(")\n");
int aa = 1; //초기치를 밖깥에서 정하고 for을 써도 됨
for(; aa <= 5; aa++) {
if(aa == 2) {System.out.println("만세");
System.out.print(aa + " ");
}
}
System.out.println();
System.out.println("\n다중 for -----------------");
for(int m=1; m <= 3; m++) {
System.out.println("m=" + m);
for(int n=1; n<= 4; n++) {
System.out.print("n:" + n +" ");
}
System.out.println();
}
System.out.println();
for(char i = 65; i <= 90; i++) {
System.out.print(i + " : ");
for(char j = i; j <= 'Z'; j++) {
System.out.print(j);
}
System.out.println();
}
System.out.println();
//구구단 출력 (3단)
for(int count = 1; count<10; count++) {
System.out.println("3 * " + count + "=" + 3 * count);
}
//continue, break
for(int i = 1; i <= 10; i++) {
if(i == 3) continue; //건너뛰기 기능
// if(i == 7) break; // for문 멈추고 탈출
// if(i == 5) return; // 메소드를 탈출 (∴따라서 ("프로그램 종료" 출력 실행 안함)
if(i == 5) System.exit(1);//exit는 프로그램 자체를 종료하는 것 (return ≠ exit) 1이나 0 쓰면 됨
System.out.print(i + " ");
}
System.out.println();
int kk = 0;
for(;;) { // 이러면 무한루프
kk++;
System.out.println("출력 : " + kk);
if(kk == 5) break; //하지만 멈추고 탈출 가능
}
System.out.println("\n프로그램 종료");
}
}
4.3-2 반복문 (do-while문)
package pack1;
public class Test7_while {
public static void main(String[] args) {
// 반복문 while (조건){} ->조건이 참인 것만 수행
int w = 1; // 초기치 먼저 설정
while(w <= 5) {
System.out.println("w: " + w); // 무한루프 (왜냐면 w=1 이니까)
w++; //그래서 블럭화 시키고 증가치 설정 필수 [반복문 탈출(거짓이 되는 지점)을 위한 작업]
}
System.out.println("탈출 후w :" + w);
//반복문은 while 보다는 for (2차원 배열지만 쓰기 때문)
System.out.println();
w = 0;
while(true) { //while(true)는 무한 루프, while(false)는 말이 안됨
w++;
if(w == 2) continue;
if(w == 5) break;
System.out.println("w: " + w);
}
System.out.println();
//최소한번 실행 시켜주고 싶을 때 (선 명령 후 조건)
w = 10;
do { //일단 실행해
System.out.println("더블유: " + w);
w++;
}while(w <= 5);
}
}
'Programming Language > Java 마스터하기(feat. 이것이 자바다)' 카테고리의 다른 글
[5. 참조 타입] (0) | 2020.07.19 |
---|---|
[4. 조건문과 반복문] 반복문 problem 1~3 (0) | 2020.07.19 |
[4. 조건문과 반복문] 조건문 problem 1~5 + α (0) | 2020.07.19 |
[3. 연산자] (0) | 2020.07.19 |
[2. 변수와 타입] (0) | 2020.07.19 |