728x90
Switch ~ case 문
if 문과 비슷하지만 if 문은 괄호 안에 인자 값이 True/False 로 결정되는 조건식이 들어가야 하고,
Switch 문은 인자 값으로 조건이 아닌 비교할 값이 들어가야 한다. case로 여러 특정 조건을 나열한다.
특정 조건을 만족하면 바로 실행되어 case 문을 벗어나야 하기 때문에 각 case 문 끝에는 break; 를 기술한다.
package Java04;
import java.util.Scanner;
public class Test04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
System.out.print("하고싶은 것을 선택하세요 => 1: 게임하기, 2: 게임소개, 3: 게임종료 ");
int n = scan.nextInt();
switch (n) { //인자로 비교할 대상이 들어가야한다.
case 1: // 인자와 비교할 첫 번째 값이 들어간다.
System.out.println("1: 게임하기");
break;
case 2: // 인자와 비교할 두 번째 값이 들어간다.
System.out.println("2: 게임소개");
break;
case 3: // 인자와 비교할 세 번째 값이 들어간다.
System.out.println("3: 게임종료");
break;
default:
System.out.println("메뉴 선택이 올바르지 않아요");
break;
}
/* if 문장으로 바꿔보기
if (n==1) {
System.out.println("1 : 게임하기");
} else if (n==2) {
System.out.println("2 : 게임소개");
} else if (n==3) {
System.out.println("3 : 게임종료");
} else {
System.out.println(" 메뉴선택이 올바르지 않아요.");
}
*/
scan.close();
}
}
더보기
Q1. 키보드에서 두 개의 숫자를 입력받고, 이어서 연산자를 입력받은 뒤 연산자를 case "+" : 식으로 각각 분할해서 계산하기.
package Java05;
import java.util.Scanner;
public class Q1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
System.out.print("Enter first num1 : ");
double num1 = scan.nextDouble();
System.out.print("Enter first num2 : ");
double num2 = scan.nextDouble();
System.out.print("Enter Operator'(+,-,*,/,%)' : ");
String sign = scan.next();
scan.close();
//System.out.println(num1 + sign + num2);
switch (sign) {
case "+":
System.out.println(num1 + num2);
break;
case "-":
System.out.println(num1 - num2);
break;
case "*":
System.out.println(num1 * num2);
break;
case "/":
System.out.println(num1 / num2);
break;
case "%":
System.out.println(num1 % num2);
break;
default :
System.out.println("잘못된 연산자 입니다.");
}
}
}
For문
for (i=시작; i <= 끝; i++;/i--)
package Java04;
import java.util.Scanner;
public class Test05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i;
for (i=0; i<10; i++) {
System.out.println("hello, it's me" + i);
}
System.out.println("oh Yeah!!!!!!!");
}
}
더보기
Q2-1. 100~1 까지 감소해서 보이는 for 문
package Java05;
public class Q2_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i=100; i>=1; i--) {
System.out.print(i + ", ");
for (int j=1; j>=100; i++) {
}
}
}
}
Q2-2. 1~50까지에서 3의 배수만 출력하는 for문
package Java05;
public class Q2_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for (int j=1; j<=50; j++) {
if(j%3 == 0) //3의 배수
System.out.print(j + "는(은) 3의 배수입니다.\n");
}
}
}
Q3. 2~9사이의 숫자를 입력하고 입력받은 숫자의 구구단을 계산하시오 .
package Java05;
import java.util.Scanner;
public class Q3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
System.out.print("숫자를 입력해보세용 ^^ : ");
int dan = scan.nextInt();
if (dan <= 1 || dan >=10) {
System.out.println("2~9 사이의 숫자를 넣으세용 ^^");
} else {
for(int i=1; i<=9; i++) {
System.out.println(dan + "*" + i + "=" + (dan*i));
}
scan.close();
}
}
}
Q4-1. 아래의 형태로 출력하기.
package Java05;
public class Q4 {
// 01 02 03 04
// 05 06 07 08
// 09 10 11 12 출력하기.
public static void main(String[] args) {
int count = 0;
for (int i=1; i<=3; i++) { //3행
for (int j=1; j<=4; j++) { //4열
System.out.printf("%02d " , ++count);
//2자리 십진수 포맷, ++count로 인해서 숫자 늘어남.
//c의 printf() 사용해서 문자/숫자 등의 포맷을 맞춤
}
System.out.println(); //줄바꿈
}
}
}
package Java05;
public class Q5 {
// A B C D
// E F G H
// I J K L
public static void main(String[] args) {
int ch = 'A';
for (int i=1; i<=3; i++) { //3행
for (int j=1; j<=4; j++) { //4열
System.out.printf("%c " , ch++);
}
System.out.println(); //줄바꿈
}
}
}
package Java05;
public class Q6 {
// *
// * *
// * * *
// * * * *
// * * * * *
public static void main(String[] args) {
for (int i=0; i<=5; i++) {
for (int j=0; j<=i; j++) {
System.out.print("* ");
}
System.out.println(); //줄바꿈
}
}
}
package Java06;
public class Q1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/* 방법1.
for (int i=1; i<=10; i++) {
for (int j=0; j<10; j++) {
int num = i+j;
if(num >10)
num -=10;
System.out.print(num + " ");
}
System.out.println();
}*/
/* 방법 2.
for (int i=0; i<10; i++) {
for (int j=i; j<10+i; j++)
System.out.print(j%10+1 + " ");
System.out.println();
} */
/* 방법 3 .
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int num;
for (int i=0; i<=10; i++) {
for (int k=0; k<10; k++){
System.out.print(arr[k]);
System.out.print(" ");
}
System.out.println();
num = arr[0];
for(int j=0; j<9; j++) {
arr[j] = arr[j+1];
}
arr[9] = num; */
int count =0;
for (int i=0; i<10; i++) {
count +=i;
for (int j=0; j<10; j++) {
if(count == 10)
count = 0;
++count;
System.out.print(count + " ");
}
count=0;
System.out.println();
}
}
}
Nested if/for -
하나의 if-문, for-문 안에 if-문, for-문이 들어있는 경우이다.
package Java04;
public class Test05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i,j;
for (j=2; j<10; j++) {
for(i=1; i<=9; i++) {
System.out.println(j + "x" + i +"=" + j*i);
}
}
}
확장 For 문
for의 ( ) 안에서 반복 범위를 지정하지 않고 배열이나, 셀렉션 클래스에서 요소의 개수에 맞춰서 반복시키는 경우를 말한다.
ex) int [ ] a = {1, 2, 3, 4} => for (int b : a) ; 식으로 표현하는데 (Python의 slicing)이 구문에서 b는 요소를 대입하기 위한 변수로써 요소의 개수를 미리 지정하지 않아도 된다. a에는 배열이나 컬렉션 클래스로 지정한다. b에 a요소를 처음부터 차레대로 대입하는데 몇 개의 요소인지는 몰라도 요소가 있는 한 처리를 계속하게 된다.
package Java04;
public class Test07 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] season = {"Spring","Summer","Autumn","Winter"};
for (String s : season) { // 바로 변수선언
System.out.println(s);
}
}
}
'일단 해보는 코딩 > Java' 카테고리의 다른 글
[Java] 자바 난수(random) 함수 및 seed 설명 (0) | 2022.07.22 |
---|---|
[Java] 배열(Array) (0) | 2022.07.21 |
[Java] If문, else if~, (0) | 2022.07.21 |
[Java] 스캐너(Scanner) 예제모음 (0) | 2022.07.20 |
[Java] 연산자 종류 (0) | 2022.07.20 |