Javajungsuk4, Javajungsuk4_10
package javajungsuk4;
public class Ch04_1a4 {
public static void main(String[] args) {
// 4-1 ~ 4-4 조건문, if문, if-else문
// 조건문 : 조건이 참이면 수행(0~1번 실행)
// 반복문 : 조건을 만족하는 동안 수행(0~n번)
// 조건문과 반복문은 실행흐름을 바꿀 수 있기때문에 '제어문'이라고도 한다. / flow control statement
// if
int a = 30;
if (a < 100) {
System.out.println("앙녕 if!"); // 조건이 거짓이라면 조건문을 실행하지 않고 다음 코드를 실행한다.
System.out.println("a = " + a);
}
// 반복문
// while (a++ > 0) {
// System.out.println("앙녕 while!"); // 조건이 거짓이라면 실행하지 않지만, 참이면 여러번 수행될 수 있다.
// }
// if-else
if (a == 30) {
System.out.println("if문은 참일 때 실행되고 거짓이라면 if는 뛰어넘고 else가 실행된다.");
} else {
System.out.println("else는 조건이 거짓일 때 실행된다.");
}
} // main의 끝
}
package javajungsuk4;
import java.util.Scanner;
public class Ch04_5a8 {
public static void main(String[] args) {
// 4-5 ~ 4-8 if-else if문, 중첩if문
// 여러 개의 조건식 중 하나만 실행한다.
int score = 0; // 점수를 저장하기 위한 변수
char grade = 'D'; // 학접을 저장하기 위한 변, 공백으로 초기화
System.out.println("점수를 입력하세요.>");
Scanner scn = new Scanner(System.in); // 화면으로부터 입력을 받겠다.
score = scn.nextInt(); // 화면을 통해 입력받은 정수를 score에 저장하는 것
if (score >= 90) {
grade = 'A';
}
else if (score >= 80) {
grade = 'B';
}
else if (score >= 70) {
grade = 'C';
}
// else {
// grade = 'D'; // 코드를 줄이기 위해 else를 쓰지 않고, grade 기본값을 설정해줬다.
// }
System.out.println("당신의 학점은 " + grade + "입니다.");
scn.close();
}
}
package javajungsuk4;
import java.util.Scanner;
public class Ch04_9a11 {
public static void main(String[] args) {
// 4-9 ~ 4-11 switch문
// 여러가지의 조건이 있을 때, if-else if문을 쓸 수 있지만 많을 때면 switch를 사용한다.
// 조건식을 계산하고 조건식이 일치하는 case문으로 이동하여 수행한다.
// break나 switch문을 만나면 전체를 빠져나간다.
// 어느 곳도 일치하는 case문이 없다면 default로 이동한다. >> default문은 switch문의 마지막부분에 쓴다.
// switch문에는 제약조건이 있다.
// 제약조건 2가지
// System.out.println("조건식의 결과는 정수나 문자열이어야 한다.");
// System.out.println("case문의 값은 정수 상수(문자 포함), 문자열만 가능하다."); // 변수와 실수 X, 문자는 유니코드
System.out.println("현재 월을 입력하세요. >");
Scanner scn = new Scanner(System.in); // 화면으로부터 입력받기
int month = scn.nextInt();
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 : // case 12 : case 1 : case 2 :
System.out.println("현재의 계절은 겨울입니다.");
} // switch의 끝
scn.close();
} // main의 끝
}
package javajungsuk4_10;
public class Ch04_12 {
public static void main(String[] args) {
// 4-12 임의의 정수 만들기(실수도 가능)
// Math.random() : 0.0과 0.1사이의 임의의 double값을 반환
// 정수로 반환하고 싶다면 int형변환을 사용
// 범위를 조정하려면 +1처럼 범위를 조정해줄 수 있다. - +
// 곱하는 게 개별값 개수
// int num = 0;
for(int i = 1; i <= 20; i++) {
// System.out.println(Math.random()); // 0.0(포함) ~ 1.0 사이
// System.out.println(Math.random() * 10); // 0.0(포함) ~ 10.0 사이
// System.out.println((int) (Math.random() * 10)); // 0(포함) ~ 10 사이의 정수 / 0 ~ 9까지 출력
// 1. Quiz : 1~10까지의 난수를 20개 출력하시오.
System.out.println((int) (Math.random() * 10) + 1); // 1 ~ 10까지 출력
// 2. Quiz : -5 ~ 5 사이의 난수를 20개출력하시오.
System.out.println((int) (Math.random() * 11) - 5); // -5 ~ 5까지 출력
}
} // main의 끝
}
package javajungsuk4_10;
public class Ch04_13a14 {
public static void main(String[] args) {
// 4-13, 4-14 for문
// 조건식을 생략하면 true로 간주되어 무한반복문이 된다.
// scope(범위) - 선언위치부터 선언된 블럭의 끝까지
for(int i = 1; i <= 30; i++) {
System.out.println("하이! for, while!"); // 블럭{}안의 문장을 30번 반복
System.out.println(i);
}
for(int i = 1, j = 10; i <= 10; i++, j--) {
System.out.println("i=" + i + "j=" + j); // 같은 타입일 경우에 변수 2개도 가능하다.
}
// int i;
// for(i = 1; i <= 5; i++) {
// System.out.println("Ang!");
// }
//
// System.out.println("범위를 벗어나면 i라는 변수를 찾을 수 없어서 에러가 발생한다."); // scope : 범위
// System.out.println("for의 블럭 밖에서 i를 사용해야한다면 변수를 밖에서 따로 선언해서 사용할 수 있다." + " i = " + i);
int sum = 0; // 합계를 저장하기 위한 변수
for(int i =1; i <= 5; i++) {
sum += i; // sum = sum + i;
System.out.printf("%2d%n", sum);
}
} // main의 끝
}
package javajungsuk4_10;
public class Ch04_15 {
public static void main(String[] args) {
// 4-15 중첩 for문
// j값이 1번째 줄에 *이 하나, 2번째 줄에 *이 2개로 되는 것처럼 만들려면 i값이 증가함에 따라 j도 하나씩 증가해야하기 때문에 i <= j;로 바꾸면 된다.
// 여러가지 *모양을 그려보는 연습을 해보는 것이 도움된다.
for(int i = 2; i <= 9; i++) {
for(int j = 1; j <= 9; j++) {
System.out.println(i + " * " + j + " = " + (i*j)); // 괄호를 붙이는 것이 좋다.
}
System.out.println(); // 한 번의 수행이 끝날 때 마다 간격
}
for(int i = 1; i <= 5; i++) {
for(int j = 1; j <= 10; j++) {
System.out.print("*");
} // System.out.println("**********");
System.out.println(); // 줄바꿈
}
} // main의 끝
}
package javajungsuk4_10;
public class Ch04_16a19 {
public static void main(String[] args) {
// 4-16 ~ 4-19 while문, do-while문
// for - 반복횟수를 알 때 / while - 반복횟수를 모를 때
// while문은 반복횟수를 모를 때 쓰지만, for처럼 정해진 때도 쓸 수 있다.
// while : 조건식이 참일 때 수행하고 거짓일 경우 멈춘다. / 처음부터 false라면 1번도 수행하지 않는다.
// do-while : 최소 한 번 이상 반복한다. 사용자 입력받을 때 유용하다.
// do-while에 끝에 ;을 잊지않도록 주의해야 한다.
int i = 5;
while(i!=0) {
i--;
System.out.println(i + " - 난 할 수 있앙~"); // i가 감소하고 4에서 1까지 반복하다가 i의 값이 0이 되면 0!=0 false라서 끝
} // while의 끝
int num = 12345, sum = 0;
// System.out.println(12345%10); // 10으로 나머지 연산을 하면 마지막 자리를 얻는다.
while(num > 0) {
System.out.println(num%10);
sum += num%10; // 나머지 값을 sum에 저장하여 누적
num = num / 10; // 12345를 10으로 나눈 몫을 반복 : 12345 1234 123 12 1
} // while의 끝
System.out.println("각 자리수의 합" + sum);
} // main의 끝
}
package javajungsuk4_10;
import java.util.*;
public class Ch04_20a24 {
public static void main(String[] args) {
// 4-20 ~ 4-24 break문, continue문, 이름 붙은 반복문
// break : 자신이 속한 하나의 반복문을 벗어난다.
// while의 무한반복문 (true) / for의 무한반복문 (;true;), (;;)
// continue : 자신이 포함된 반복문의 끝으로 이동(다음 반복으로 넘어감)
// 이름 붙은 반복문 : 이름을 붙여서 하나 이상의 반복문을 벗어날 수 있다. / 자주 사용하지는 않는다. 있다는 것만 알아두자.
int sum = 0;
int i = 0;
while(true) {
if(sum > 100) {
break;
}
i++;
sum += i; // 조건을 만족하게 되면(sum이 100보다 큰 수까지 증가를 했다면) break가 수행되어 while을 빠져나온다.
} // while의 끝
System.out.println("i = " + i);
System.out.println("sum = " + sum);
for(int j = 0; j <= 10; j++) {
if(j%2 == 0) {
continue;
}
System.out.println(j);
} // for의 끝
int menu = 0;
Scanner scn = new Scanner(System.in);
while(true) {
System.out.println("1. 사과");
System.out.println("2. 귤");
System.out.println("3. 포도");
System.out.print("원하는 메뉴(1~3)를 선택하세요. (종료 : 0) > ");
String tmp = scn.nextLine(); // 화면에서 입력받은 내용을 tmp에 저장
menu = Integer.parseInt(tmp); // 입력받은 문자열(tmp)을 숫자로 변환
// menu = Integer.parseInt(scn.nextLine()); 한줄로 가능하다.
if(menu == 0) {
System.out.println("종료합니다.");
break;
}
else if(!(1 <= menu && menu <= 3)) {
System.out.println("메뉴를 잘못 선택하셨습니다. 종료는 0.");
continue;
}
System.out.println("선택하신 메뉴는 "+ menu + "번 입니다.");
}// while의 끝
scn.close();
} // main의 끝
}
Comments