- 삼항 연산자
삼항 연산자의 형태 : 조건식 ? 참인경우 실행문 : 거짓인 경우 실행문;
*실행문에 삼항연산자를 중첩시킬 수 있으나 반복되면 보기가 힘들다.
- 문자열.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 |