JAVA - Day3 - Scanner, if, if else
<학습하기>
#1 - Scanner 객체 생성하기
import java.util.Scanner;
//클래스 이름지을 때 유의할것!!!
//이미 사용되고 있는 클래스이름으로 만들면 충돌이라나서 에러난다.
//외부 클래스 호출
//Scanner 클래스는 java.util 패키지에 포함되어 있다.
public class ScannerS {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Scanner 클래스 (입력 : 정수, 실수, 문자열)
// 스캐너 객체 생성
Scanner sc = new Scanner(System.in);
// System.in은 입력한 값을 바이트 단위로 읽는 것을 뜻한다.
// System.in.read();
// 입력받을 때 초록색
// 출력할 때 검은색
// 정수입력
System.out.print("정수입력 :" );
int num = sc.nextInt();
System.out.println(num);
// 실수 입력
System.out.print("실수입력 : ");
double num2 = sc.nextDouble();
System.out.print(num2);
// next + 자료형();
// 문자열 ( next(), nextLine());
System.out.print("문자열을 입력 : ");
String str1 = sc.next();
// 공백 허용 x
// Hello, World 입력하면 Hello, 까지만 출력된다.
System.out.print(str1);
// 공백을 허용하려면 nextLine을 사용하자.
String str2 = sc.nextLine();
// 공백을 허용하며, 한줄을 읽어온다.
System.out.print(str2);
}
}
#1 - Scanner 객체 생성하기
import java.util.Scanner;
//클래스 이름지을 때 유의할것!!!
//이미 사용되고 있는 클래스이름으로 만들면 충돌이라나서 에러난다.
//외부 클래스 호출
//Scanner 클래스는 java.util 패키지에 포함되어 있다.
public class ScannerS {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Scanner 클래스 (입력 : 정수, 실수, 문자열)
// 스캐너 객체 생성
Scanner sc = new Scanner(System.in);
// System.in은 입력한 값을 바이트 단위로 읽는 것을 뜻한다.
// System.in.read();
// 입력받을 때 초록색
// 출력할 때 검은색
// 정수입력
System.out.print("정수입력 :" );
int num = sc.nextInt();
System.out.println(num);
// 실수 입력
System.out.print("실수입력 : ");
double num2 = sc.nextDouble();
System.out.print(num2);
// next + 자료형();
// 문자열 ( next(), nextLine());
System.out.print("문자열을 입력 : ");
String str1 = sc.next();
// 공백 허용 x
// Hello, World 입력하면 Hello, 까지만 출력된다.
System.out.print(str1);
// 공백을 허용하려면 nextLine을 사용하자.
String str2 = sc.nextLine();
// 공백을 허용하며, 한줄을 읽어온다.
System.out.print(str2);
}
}
#2 - Scanner_02
import java.util.Scanner;
public class ScannerS_Ex_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 한 학생의 정보를 받아오자.
// 이름, 나이 , 키 정보
Scanner input = new Scanner(System.in);
//입력을 하는 변수들 밑에는 노란색 줄이 뜬다.
//close하면 없어짐.
//그러나 input.close(); 생략해도 무방하다.
//.. 하지만 스캐너 객체를 사용하기 이전에 close를 하면
//사용하기 이전에 닫히기 때문에 에러.
//다 사용하고 close하거나 그냥 하지 말 것!
System.out.print("이름 : ");
String name = input.next();
//입력 버퍼를 비우자. (에러 방지)
//next에 스캔되는 문자열이 공백이 있다면
//공백뒤는 저장이 안되고 쓰레기가 됨.
//예를들어 문자열이 남았다고 할 때,
//그 공백뒤의 문자열이 int에 저장될수 없기 때문에 에러가 남.
//
//그냥 nextLine을 쓰는게 일반적..
input.nextLine();
System.out.print("나이 : ");
int age = input.nextInt();
System.out.print("키 : ");
double hei = input.nextDouble();
System.out.println("이름 :"+name + "나이 : "+age+"키 : "+hei);
}
}
#3 - If 문
import java.util.Scanner;
public class IfTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
// 실수를 .4자리 출력
// 사용하는 출력문은?
// printf("서식문자", 인자);
// 제어문 - 프로그램을 제어하기 위한 문들.
// 조건문 : if, if~else, if~else if ~else
// switch
// 반복문 : 하나 이상의 문장을 반복
//
//if(조건)
//참인경우 실행;
// 자격증 시험 60점 이상! 합격~~
int num = 90;
if(num>=60)
{
System.out.println("합격입니다.");
System.out.println("자격증을 발급하세요");
}
System.out.println("if문 끝");
//괄호가 없다면 if문 다음 한줄까지만 조건으로 인식한다.
}
}
#4 - If else
import java.util.Scanner;
//for 문제 3
public class IfTest_Ex_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// #문제 1 : 수우미
int j = 100;
if(j>=90)
System.out.println("수!");
if(j>=80)
System.out.println("우!");
if(j>=70)
System.out.println("미!");
System.out.println("if문 끝~");
//모든 조건을 충족시키기 때문에 모두 출력됨.
//이럴때는 if~else를 쓰자.
//if (조건)
//참인경우
//else
//거짓인 경우
//그런데 조건이 너무 많아서 좀 보기가 불편함!!
//else 에다가 조건문을 달아주고싶으면
//else if라고 쓰자.
System.out.println();
// #문제 1'
int k = 80;
if (k >=90)
{
System.out.println("수!");
}
else if (k >= 80)
{
System.out.println("우!");
}
else if (k >= 70)
{
System.out.println("미!");
}
else
{
System.out.println("양..");
}
System.out.println();
// #문제 2 : 홀수인지 짝수인지 구별하자.
int num = 10;
if (num%2 == 0)
System.out.println("짝수");
else
System.out.println("홀수");
//이떄 else바로옆에 괄호를 열고 거기에는 조건문을 달면 안된다
//else는 if가 거짓일 때 출력되는 아이.
System.out.println("if~else문 끝~");
System.out.println();
// #문제 3 :
// 사용자의 점수를 입력받아서
// 60점 이상일 경우 합격입니다.
// 90점 이상일 경우에는 장학금 대상입니다.
// 60점 미만일 경우 불합격 입니다.
// 20점 미만일 경우 3년간 시험 금지.
Scanner sc = new Scanner(System.in);
System.out.print("점수입력 : ");
int exam = sc.nextInt();
if(exam>=60)
{
System.out.println("합격입니다.");
if(exam>=90)
{
System.out.println("장학금 대상입니다.");
}
}
else
{
System.out.println("불합격입니다.");
if(exam<30)
{
System.out.println("3년간 시험 금지!");
}
}
}
}
#5 - if문 실습하기.
import java.util.Scanner;
public class IfTest_Ex_02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// if문 실습하기
// 자이로드롭 키제한
// 130이상 190이하 탑승가능
// 몸무게가 100이상일 경우에는 탑승 불가
// 130미만 190초과일 경우 탑승 불가능
// 몸무게가 100이하일 경우 부모님 동반 탑승가능
Scanner sc = new Scanner(System.in);
System.out.print("키와 몸무게를 입력하세요.");
double height = sc.nextDouble();
double weight = sc.nextDouble();
if(height >= 130 && height <= 190)
{
if(weight >=100)
{
System.out.println("탑승 불가입니다.");
}
else
System.out.println("탑승 가능합니다.");
}
else
{
if(weight<=100)
{
System.out.println("부모님 동반 탑승 가능입니다.");
}
else
System.out.println("탑승 불가입니다.");
}
}
}
#6 -if else 실습하기
import java.util.Scanner;
public class IfTest_Ex_03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// if else 실습하기
//사용자의 나이를 입력 받아서
//8 미만 영유아
//8살 이상 13 미만 초등학생
//13이상 16미만 중학생
//16이상 20미만 고등학생
//20이상 성인
Scanner e= new Scanner(System.in);
System.out.print("나이를 입력하세요.");
int age = e.nextInt();
if (age < 8)
System.out.println("영유아");
else if (age<13 && age>=8)
System.out.println("초등학생");
else if (age<16 && age>=13)
System.out.println("중학생");
else if (age<20 && age>=16)
System.out.println("고등학생");
else
System.out.println("성인");
//마지막 조건문에서는 조건 안달아도 된다!
//else if 니까 관계연산자를 안써도돼.
//코드를 줄여보자!
System.out.println();
System.out.print("나이를 입력하세요.");
int h = e.nextInt();
if (h < 8)
System.out.println("영유아");
else if (h < 13)
System.out.println("초등학생");
else if (h < 16)
System.out.println("중학생");
else if (h < 20)
System.out.println("고등학생");
else
System.out.println("성인");
}
}
#7 - if else를 이용한 계산기 만들기.
import java.util.Scanner;
public class IfTest_Ex_04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// If else 실습
// 간단한 계산기 만들기!
// 먼저 정수 두개를 입력을 받고
// +, -, *, / 번호입력하기.
// 1-> 더하기
// 2-> 뺴기
// 3-> 곱하기
// 4-> 나누기
// 다른 숫자를 눌렀을 경우 잘못 입력되었습니다 출력!
// 조건문이 끝나고 정수의 결과값 출력하기.
Scanner sc = new Scanner(System.in);
System.out.println("계산기 입니다.");
System.out.println("두가지 정수를 입력하세요.");
System.out.println("=====================");
int num1 = sc.nextInt();
int num2 = sc.nextInt();
System.out.println("1.더하기");
System.out.println("2.빼기");
System.out.println("3.곱하기");
System.out.println("4.나눗셈 몫");
System.out.println("=====================");
System.out.print("연산하고 싶은 단축키를 누르세요.");
System.out.println("");
int num3 = sc.nextInt();
int intresult = 0;
//초기화를 안하게 되면 에러가 된다.
//초기화를 안하면 마지막에 결과값을 출력할 때 출력할 값이 없기때문.
if (num3 == 1)
intresult = num1 + num2;
else if (num3 ==2)
intresult = num1 - num2;
else if (num3 ==3)
intresult = num1 * num2;
else if (num3 ==4)
intresult = num1 / num2;
else
System.out.println("잘못 입력되었습니다.");
System.out.println("num1의 값 :"+num1);
System.out.println("num2의 값 :"+num2);
System.out.println("연산 결과값 :"+intresult);
}
}
#8 - Switch문
public class SwitchTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* switch(입력값)
* 입력값 : 변수, 정수, 연산을 한 정수, 문자열, 상수
* {
* case 입력값:
* 내용
* case 입력값:
* 내용
* }
* ex)백과사전의 목차.
*/
System.out.println("switch문의 사용");
int num1 = 1;
switch(num1)
{
case 0:
System.out.println("0");
case 1:
System.out.println("1");
case 2:
System.out.println("2");
case 3:
System.out.println("3");
}
System.out.println("switch문 끝~");
//num = 1이므로 바로 case 1로 간다.
//이때 제어문이 없으므로 아래에있는 조건문까지 모두 출력하게 된다.
//break로 멈추게 하자.
System.out.println();
System.out.println("switch문에서의 break의 역할");
//break의 역할
//switch문 밖으로 나가게 해준다.
//case의 영역을 구별지어준다.
int num2 = 1;
switch(num2)
{
case 0:
System.out.println("0");
System.out.println("Blue");
break;
case 1:
System.out.println("1");
System.out.println("Dragon");
break;
case 2:
System.out.println("2");
System.out.println("Mir");
break;
case 3:
System.out.println("3");
System.out.println("YodaTuna");
}
System.out.println("switch문 끝~");
System.out.println();
// #1문제 : 입력한 값이 5의 배수입니까?
System.out.println("#1 문제");
int n = 13;
System.out.println("확인하고자 하는 숫자의 값 :"+n);
switch(n%5)
{
case (0):
System.out.println("5의 배수다!");
break;
default:
//위에 어떤 경우에도 속하지 않을 떄 쓴다.
//else문과 비슷.
System.out.println("5의 배수가 아니다");
}
System.out.println();
// 문자열도 switch문에서 사용 가능하다!
String str1 = "Blue";
switch(str1)
{
case "Blue" :
System.out.println("청");
break;
case "Dragon" :
System.out.println("용");
break;
default:
System.out.println("어떤 경우도 아니다.");
}
// 단, 실수는 switch문에서 입력값으로 사용할 수 없다.
// 무조건 다 default값으로 나오기 때문.
System.out.println();
// 경우가 겹칠때는 case를 두개 달아주면 된다.
String str2 = "요참";
switch(str2)
{
case "요참" :
case "Blue" :
System.out.println("공대생");
break;
/*
* case "Blue" :
System.out.println("공대생");
break;
*/
default:
System.out.println("어떤 경우도 아니다.");
}
}
}
#9 - 실습하기
import java.util.Scanner;
public class Project1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/* 문제1
* 국어:80
* 수학:90
* 영어:100
*
* 사용자로부터 입력받아서 총점과 평균을 낸다.
* 90이상 A
* 80이상 B
* 70이상 C
* 60이상 D
* 60미만 F
*
*/
Scanner sc = new Scanner(System.in);
System.out.println("국어 :");
int kor = sc.nextInt();
System.out.println("수학 :");
int math = sc.nextInt();
System.out.println("영어 :");
int eng = sc.nextInt();
int sum = kor + eng + math;
int avg = sum/3;
//평균 90점 이상 A
/*
switch (avg)
{
case 90 : case 91: 졸라많아 case 92 : case 93:
졸라 많으니까 10으로 나눈 몫을 쓰자.
}
*/
switch (avg/10)
{
case 10: case 9:
System.out.println("A");
break;
case 8:
System.out.println("B");
break;
case 7:
System.out.println("C");
break;
case 6:
System.out.println("D");
break;
default :
System.out.println("F");
}
System.out.println("당신의 총점 :"+sum+"평균 :"+avg);
// avg를 double로 바꿔보자.
// 해답1'
System.out.println("국어 :");
int kor2 = sc.nextInt();
System.out.println("수학 :");
int math2 = sc.nextInt();
System.out.println("영어 :");
int eng2 = sc.nextInt();
int sum2 = kor2 + eng2 + math2;
double avg2 = (double)sum2/3;
// 이때 sum2/3의 값은 정수형이기 때문에
// 만약 값이 93.3333.. 이라면 93.000이 저장이 된다.
// 이럴 때 캐스팅을 해주자.
switch ((int)avg2/10)
// switch에서는 실수를 쓸 수 없기 때문에
// 마찬가지로 정수형으로 캐스팅해주자.
{
case 10: case 9:
System.out.println("A");
break;
case 8:
System.out.println("B");
break;
case 7:
System.out.println("C");
break;
case 6:
System.out.println("D");
break;
default :
System.out.println("F");
}
System.out.println("당신의 총점 :"+sum2+"평균 :"+avg2);
}
}
댓글
댓글 쓰기