티스토리 뷰
Chapter 4. 제어문
▶ 학습 목표
: Scanner와 중첩 if문 switch문이 무엇인지 이해하고 사용 목적에 따라 사용할 수 있다.
- Scanner
: 사용자로부터 입력을 받기 원할 때 사용하는 클래스
사용하고자할시 import java util.Scanner을 추가해주어야한다.
*Scanner 와 같이 데이터타입 자리에 검은색인 것은 참조변수이다.
이러한 참조변수는 주소를 담는다.
package chapter4;
import java.util.Scanner;
public class exam4_17
{
public static void main(String[] args)
{
//재료 확보 : 변수 선언 및 초기화
int age;
//변수의 종류 : 정수형, 실수형, 문자형, 논리형, 참조형
Scanner sc;
sc = new Scanner(System.in);
age = sc.nextInt();
//String tmp=sc.nextLine();//.은 안에
//콘솔창에 입력되는 문자를 리턴해준다=nextLine
System.out.println(age);
}
}
*sc.nextLine() 에서 '.' 은 '~안에'라는 뜻으로 sc.nextLine()은 sc 안에 문자를 뜻한다.
- Scanner를 사용하여 문자 불러오기
package chapter4;
import java.util.Scanner;
public class exam4_2 {
public static void main(String[] args)
{
String ltr;
Scanner tr;
tr = new Scanner(System.in);
ltr=tr.nextLine();
System.out.println(ltr);
}
}
* nextLine()은 문자를 불러온다.
- Scanner를 사용하여 숫자 불러오기
package chapter4;
import java.util.Scanner;
public class exam4_3 {
public static void main(String[] args)
{
int LTR;
Scanner TR;
TR = new Scanner(System.in);
LTR = TR.nextInt();
System.out.println(LTR);
}
}
*nextInt()는 숫자를 불러온다.
- Scanner를 사용하여 숫자와 문자 두 개의 값 불러오기.
package chapter4;
import java.util.Scanner;
public class exam4_4 {
public static void main(String[] args)
{
int age; //Step 1 : 변수선언
Scanner sc;
Scanner sd; //외부 클래스 사용시 import 필수
sc = new Scanner(System.in);
sd = new Scanner(System.in); //숫자값을 담게되면 문자 불가능하기 때문에 sd로 하나 더 만들어준다.
// Step 2 : 참조값(객체) 생성 후 담기
System.out.println("숫자를 입력해주세요 : ");
age=sc.nextInt();
System.out.println("문자를 입력해주세요 : ");
String tmp=sd.nextLine(); // Step 3 : 원하는 값 스캔 후 담기
System.out.print(age);
System.out.println(tmp); // Step 4 : 입력값 확인하기
}
}
* sc에 이미 숫자를 불러왔기 때문에 문자를 같이 불러올 수 없다.
* sd를 생성하여 문자를 불러온다.
* Scanner를 사용하기 위해 import jave.util.Scanner; 을 추가해야한다.
- 문자로 입력받은 값을 비교하기. (문자 = 숫자?)
package chapter4;
import java.util.Scanner;
public class exam4_5 {
public static void main(String[] args) {
int age;
Scanner input = new Scanner(System.in);
String tmp = input.nextLine();
age=Integer.parseInt(tmp);
if(age>19)
{
System.out.println("성인입니다.");
System.out.println("성인요금이 적용됩니다.");
}
else if(age>13)
{
System.out.println("청소년 입니다.");
System.out.println("청소년 요금이 적용됩니다.");
}
else
{
System.out.println("유아입니다.");
System.out.println("유아 요금이 적용됩니다.");
}
System.out.println("결제를 진행해주세요.");
}
}
위의 코드를 보면 String tmp = input.nextLine(); 명령어로 문자를 입력 받은것을 알 수 있다.
하지만 밑의 if-else if 문은 조건문을 이용한다.
조건문은 숫자 값을 사용하여 참 거짓을 판단하기 때문에 숫자 값이 필요하다.
숫자 값을 이용하기 위해
age=Integer.parseInt(tmp);
명령어를 사용하여 문자를 숫자로 형변환한다.
*숫자로 보이는 것은 문자로 입력될 수 있다.
하지만, 문자로 입력되면 연산은 불가하다.
- 중첩 if문
: if 안에 if를 쓰는 문장이다.
if(조건1)
{
//실행부분1
if(조건2)
{
//실행부분2
}
}
else
{
//실행부분3
}
조건1을 만족하면 실행부분 1을 실행한다.
중첩 if문이므로 조건2도 만족하는지 확인하고 만족한다면 실행부분2를 실행한다.
만약 조건1을 만족하지 않는다면 실행부분3을 실행한다.
ex)
package chapter4;
import java.util.Scanner;
public class exam4_6 {
public static void main(String[] args) {
String id,password;
Scanner sc = new Scanner(System.in);
System.out.println("아이디를 입력해주세요 : ");
id = sc.nextLine();
//제어부
if(id.equals("admin")) //문자열 비교는 equals
{
System.out.println("패스워드를 입력해주세요 : ");
password = sc.nextLine();
if(password.equals("1234"))
{
System.out.println("로그인 성공");
}
else
{
System.out.println("패스워드 오류");
}
}
else
{
System.out.println("아이디 오류");
}
}
}
- switch 문
: 여러개 중 하나의 값, 값에 따라 동작한다.
하나의 조건식으로 많은 경우의 수를 처리하는 조건문이다.
swtich(조건식)
{
case 값1:
//조건식의 결과와 값1이 같은 경우 실행
break;
case 값2:
//조건식의 결과와 값2가 같은 경우 실행
break;
default:
//조건식의 결과와 일치하는 값이 없을 때 실행
}
*default는 else와 같은 역할을 한다.
ex)
package chapter4;
public class exam4_7 {
public static void main(String[] args) {
int book = 2;
book = book/10;
switch(book) {
case 0 :
System.out.println("조금 더 노력하세요!");
break;
case 1 :
System.out.println("책 읽는 것을 즐기시는 분이시네요!");
break;
case 2 :
System.out.println("책을 사랑하시는 분이시네요!");
break;
default:
System.out.println("당신은 다독왕입니다!");
}
}
}
조금 더 노력하세요!
book의 값이 0이므로 case 0을 "실행 조금 더 노력하세요!"를 출력 후 break;를 만나 종료한다.
- break; 생략
: break; 는 여기까지 실행하라는 뜻으로 작성하지 않으면 break;를 만날 때 까지 실행한다.
switch 문에서는 break;가 각 case마다 포함되어야 한다.
package chapter4;
public class exam4_7 {
public static void main(String[] args) {
int book = 2;
book = book/10;
switch(book) {
case 0 :
System.out.println("조금 더 노력하세요!");
case 1 :
System.out.println("책 읽는 것을 즐기시는 분이시네요!");
case 2 :
System.out.println("책을 사랑하시는 분이시네요!");
default :
System.out.println("당신은 다독왕입니다.");
}
}
}
break;는 실행을 여기까지 하라는 뜻으로
위의 코드와 같이 break; 가 작성되지 않으면 case의 출력값 모두가 출력되기 때문에 원하지 않는 출력 값이 나올 수 있다.
조금 더 노력하세요!
책 읽는 것을 즐기는 분이시네요!
책을 사랑하는 분이시네요!
당신은 다독왕입니다!
'코딩 > JAVA' 카테고리의 다른 글
[1주차 4일] Chapter 4. 제어문-반복문(for,while,do~while,break,continue) (0) | 2023.10.13 |
---|---|
[1주차 3일] Chapter 4. 제어문-반복문(for) (0) | 2023.10.12 |
[1주차 2일] Chapter 4. 제어문 (0) | 2023.10.11 |
[1주차 2일] Chapter 3. 연산자 (0) | 2023.10.11 |
[1주차 2일] Chapter2. 변수와 상수 (0) | 2023.10.11 |
- Total
- Today
- Yesterday