본문 바로가기

Java

2023.04.12 스캐너, 조건문, 반복문

  • 삼항 연산자

삼항 연산자의 형태 : 조건식 ? 참인경우 실행문 : 거짓인 경우 실행문;

*실행문에 삼항연산자를 중첩시킬 수 있으나 반복되면 보기가 힘들다.

 

  • 문자열.equals(비교할 대상);

 == , != -> 기본타입끼리 비교할 때는 값을 비교하는데 참조타입을 비교하면 주소값을 비교한다.

 

ex) String userId = "sik";

String isAdmin = userId.equals("admin")? "관리자입니다": "일반회원입니다.";

 

 

 

package kr.ac.busanit.ch02;

 

import java.util.Scanner;

 

//사용자에게서 키보드에 입력된 값 얻어오기 - Scanner 클래스 이용

public class ScannerTest {

 

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

//Scanner 타입의 sc라는 변수를 선언하고

//시스템 입력장치로부터 스캔을 해주는 Scanner를 생성

 

// System.out.println("이름을 입력하고 엔터를 눌러주세요. : ");

// String inputData = sc.nextLine(); // 문자열을 입력받는 메소드

// System.out.println("스캐너 테스트: "+inputData);

 

System.out.println("점수를 입력해 주세요. : ");

int score = sc.nextInt(); //정수를 입력받는 메소드

System.out.println("입력한 점수 : " +score);

 

char grade = score >= 90 ? 'A' : ( score>=80?'B':'C');

 

System.out.println("성적은 : "+grade+"입니다.");

}

 

}


package kr.ac.busanit.ch02;

 

import java.util.Scanner;

 

//조건문 - IF문

public class IfExam01 {

 

public static void main(String[] args) {

// 조건식의 결과에 따라서 실행되는 소스코드가 다르게 된다.

// 코드의 실행 흐름을 여러가지 방향으로 변경할 수 있도록 도와준다.

// if문의 기본 형태 : if(조건식) {실행문;}

//

// if( 10 > 0 ) {

// System.out.println("10은 0보다 큽니다.");

// }

// System.out.println("조건문과 상관없이 실행");

//

// if(1 < 0) {

// // 조건식이 참인경우에 실행

// System.out.println("1은 0보다 크다.");

// }else {

// // 조건식이 거짓인경우에 실행

// System.out.println("거짓일 경우 실행");

// }

// int a = 0;

// int b = 1;

//

// if( a== b ) { //조건식 1번이 참인 경우에 실행

// System.out.println("a와b는 같은 값이다.");

// }else if(a<b) { //조건식 1번은 거짓이나, 조건식2번이 참인 경우 실행

// System.out.println("a는 b보다 작다.");

// }else {// 조건식1,2 모두 거짓일 경우 실행

// System.out.println("위의 두가지의 조건식에 맞지 않을때 실행");

// }

 

// if문을 사용하여 성적처리 프로그램을 만들어봅시다.(스캐너 사용 가능하다면 스캐너 사용하여)

// 90점 이상 = A를 출력

// 80점 이상 90점 미만 = B를 출력

// 70점 이상 80점 미만 = C를 출력

// 60점 이상 70점 미만 = D를 출력

// 60점 미만 = F를 출력

 

 

Scanner sc = new Scanner(System.in);

System.out.println("점수를 입력해주세요.");

int score = sc.nextInt();

if(score>=90) {

System.out.println(score+"점은 A 등급입니다.");

}else if(score >= 80) {

System.out.println('B');

}else if(score >= 70) {

System.out.println('C');

}else if(score >= 60) {

System.out.println('D');

}else {

System.out.println('F');

}

 

 

 

}

}


 

package kr.ac.busanit.ch02;

 

import java.util.Scanner;

 

//조건문 - switch문

public class SwitchExam01 {

 

public static void main(String[] args) {

// 특정변수의 값에 따라서 실행문 다르게 할 수 있다.

/* 스위치문의 형태

* switch(변수){ //변수의 값에 따라서,

* case 값1: //값1에 해당될 경우 아래의 수행문 실행

* 수행문;

* break;

* case 값2: //값2에 해당될 경우 아래의 수행문 실행

* 수행문;

* break;

* default: // 변수의 값이 값1, 값2 모두 아닐경우 실행

* 수행문;

* }

*

* */

Scanner sc = new Scanner(System.in);

System.out.print("1~10사이의 숫자중 입력해주세요 : ");

int num = sc.nextInt();

switch(num) {

case 1:

System.out.println("1을 입력하였습니다.");

break;

case 2:

System.out.println("2를 입력하였습니다.");

break;

default:

System.out.println("입력한 숫자는 1과 2중 해당되지 않습니다.");

}

//break문 - switch문에서 case마다 달아줘야한다.

// 해당 조건문을 종료할 때 사용한다.

}

 

}


 

package kr.ac.busanit.ch02;

 

//반복문 - for문

public class ForExam01 {

 

public static void main(String[] args) {

// 특정 수행문을 반복해서 실행해야할 때 사용

// for문의 형태

/*

* for(초기화; 조건식; 증감식){

* 조건식이 true일 경우 수행문;

* }

* */

// for(int i = 0;i<10;i++) {

// System.out.print(i);

// }

//

//for문을 활용하여 1~5까지의 합을 구하여 출력 해봅시다.

int sum = 0;

for(int i=1;i<=5;i++) {

sum += i;

}

System.out.println("1~5까지의 합 : "+sum);

 

// 다음의 num 변수에 저장된 숫자의 각 자리의 합을 구해봅시다.

// for문을 활용하여 작성해봅시다.

int num = 12345;

int sum1 = 0;

for(int i=0;i<5;i++) {

sum1 += num%10;

num = num/10; // 소수점은 반환 안됨.

}

 

//선생님 풀이

// int total = 0;

// for(int i = 1; i <=5; i++) {

// int n = num % 10;

// total = total + n;

// num = num / 10;

// }

System.out.println("12345 각 자리의 합 : "+sum1);

 

 

}

 

}


 

package kr.ac.busanit.ch02;

 

//반복문 - while문

public class WhileExam01 {

 

public static void main(String[] args) {

// 특정 반복되는 수행문을 간결하게 작성 가능하다.

/* while문의 형태

* while(조건식){

* 수행문;

* }

* */

int num = 0;

while(num <= 5) {

// for문과 다르게 횟수 제한이 없을 수 있어서 조건이 false가 되도록 유도하거나

// 특정 조건이 되면 break;을 실행하도록 작성 해줘야 겠다.

// 무한 루프에 빠지지 않도록 주의할 것!

System.out.println(num);

// num++; -> 조건부가 false가 되도록 유도

 

num = num+1;

if(num == 4) {

break; //특정 조건이 되었을때 break문을 실행하도록 작성

}

}

 

// while문을 사용하여 아래의 변수 num2에 저장되어있는 숫자의 각 자리의 합을 구해봅시다.

// int num2 = 12345;

// int sum=0;

// while(true){

// sum += num2%10;

// if(num2 == 0) {

// break;

// }

// num2 = num2/10;

// }

// System.out.println("총합 : "+sum);

//

//선생님 풀이

int num2 = 12345;

int total = 0;

while(num2 >0) {

int n = num2 % 10;

total = total +n;

num2 = num2/ 10;

}

System.out.println("12345의 각 자리 합 : "+total);

 

// 랜덤 숫자를 발생시키는 방법

// 자바에도 소수점자리 0이상 1미만의 난수를 발생시키는 Math.random() 메소드가 있음.

// 내가 발생시키고 싶은 숫자 * Math.random() + 1 한 상태를 int타입으로 변환

// System.out.println("난수발생 : "+ Math.random()*6+1);

 

//주사위 하나를 만들어봅시다.

int dice = (int)(Math.random()*6+1);

System.out.println("주사위를 돌려 볼게요 : "+ dice);

 

//while문을 이용하여 주사위 두개를 던졌을 때

//두 주사위의 합이 10일 때 종료가 되도록 만들어보고

//주사위를 던진 횟수를 출력해봅시다.

 

int count = 0;

 

 

int totalDice;

while(true) {

int dice1 = (int)(Math.random()*6+1);

int dice2 = (int)(Math.random()*6+1);

totalDice = dice1+dice2;

count += 1;

System.out.println(count+"번 주사위를 돌리는 중");

if(totalDice == 10) {

System.out.println("주사위1:"+dice1+" 주사위2: "+dice2);

System.out.println(count+"번 던졌습니다. 종료합니다.");

break;

}

}

//선생님 풀이

// boolean isCountinue = true;

// int count = 0;

// while(isCountinue) {

// int dice1 = (int)(Math.random()*6+1);

// int dice2 = (int)(Math.random()*6+1);

// count += 1;

// System.out.println(dice1+ " , "+dice2);

// //조건문 작성 - 두 주사위의 합이 10일때 종료하도록

// if(dice1+dice2 == 10) {

// isCountinue = false;

// }

// }

// System.out.println("주사위를 던진 횟수 : "+count);

 

}

}

 

'Java' 카테고리의 다른 글

04.19.printf  (0) 2023.04.19
선생님 새로 오심  (0) 2023.04.17
2023.04.14 null값 처리,  (0) 2023.04.14
2023.04.13. 배열, 메소드  (0) 2023.04.13
04.11 JAVA 시작  (0) 2023.04.11