728x90
반응형
연산자 우선순위
단항 연산자 > 이항 연산자 (산술 > 관계 > 논리) > 삼항 연산자 > 대입연산자
+-/ > && || > ? 순서
윤&평년 계산 알고리즘
Scanner로 입력을 받아 해당년이 윤년인지 평년인지 확인 (삼항연산자 사용)
*boolean저장변수는 is를 붙여 배정한다
import java.util.Scanner;
public class Tim0118 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("년도를 입력하세요");
int year = scanner.nextInt();
boolean isLeapYear = (year%4==0 && year%100!=0) || year%400 == 0;
//boolean의 변수이름은 is를 붙여 저장한다
// is가 붙은 변수명은 암묵적으로 무조건 true or false 값을 배정한다
if(isLeapYear) {
System.out.println("윤년입니다");
}
else {
System.out.println("평년입니다");
}
System.out.println((isLeapYear ? "윤":"평")
+ "년입니다");
// 년도가 4로 나눠떨어지고 100으로 나눠떨어지지 않거나 400으로 나눠떨어지면 윤년
// = /4 && %100!=0 || /400 = 0
}
}
switch 반복문
3가지 int점수를 입력받아서 평균을 기준으로 점수 매기는 코드
import java.util.Scanner;
public class Tim0118 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("3과목 점수를 입력하세요");
int java = scanner.nextInt();
int jsp = scanner.nextInt();
int spring = scanner.nextInt();
int total = java + jsp + spring;
double average = total/3.;
System.out.println("평균: "+average);
System.out.println("총점: "+total);
switch ((int)average / 10) {
case 10:
System.out.println("A");
break;
case 9:
System.out.println("A");
break;
case 8:
System.out.println("B");
break;
case 7:
System.out.println("C");
// key와 value가 일치할경우 실행할 문장
// break; 를 실행해줘야 조건이 일치할시 반복문을 종료함. break가 없으면 현 반복문 무한반복
default:{
// key와 value가 없을 경우 실행할 문장
// break; 동일한 이유로 break실행
System.out.println("F");
} break;
}
}
}
연속 증감자
전위, 후위형 증감자 차이점
public class Tim0118 {
public static void main(String[] args) {
int a = 1, b, c;
b = a++;
c = ++a;
System.out.println("A" + a + "B" + b + "C" + c);
// 출력값 A 3 B 1 C 3
// a++ 후위형 증감은 일단 b에 a현재값을 집어넣고 a변수에 1을 더함
// ++a 은 일단 a변수에 1을 더함
// 따라서 b에 1을 집어넣고 a에 1을 더해 2가됨
// c는 먼저 a에 1을 더한 값인 3이 들어가고 총 a의 값이 3이므로 위와 같은 출력값이 나옴
}
}
for문과 향상된 for문 사용하여 array 인덱스 값 출력
import java.util.Arrays;
class Tim0118{
public static void main(String[] args) {
int [] data = {100, 200, 300};
System.out.println(Arrays.toString(data));
//배열을 선언만 하면 기본 초기화가 실시됨
//숫자는 0, boolean은 false, 문자는 공백, 객체는 null
for(int j = 0; j <data.length; j++) {
System.out.println(data[j]);
}
System.out.println();
// 향상된 for
// 배열 전체를 대상으로 작업할 경우 사용
for(int i : data) {
System.out.println(i);
// 위 for문으로 돌린 array와 동일한 결과
// i라는 변수에 data의 0번째 인덱스 데이터를 넣고 반복을 시작하고 data배열의 마지막 인덱스 값을 i에 넣고 처리한 후 종료
//
}
}
}
Random 함수 사용하여 주사위 개수 구하기
.nextInt .nextDouble 등등
import java.util.Arrays;
import java.util.Random;
class Tim0118{
public static void main(String[] args) {
for(int i = 0; i<=5; i++) {
System.out.println((int)(Math.random()*45)+1);
}
//
System.out.println();
Random random = new Random();
for(int i = 0; i<=5; i++) {
System.out.println(random.nextInt(30));
//Math.random()과 동일한 함수 = random객체를 불러와서 random.nextDouble()실행
//Math.random()*숫자 대신에 nextInt or nextDouble(숫자) =가로안에 숫자를 씀
}
System.out.println();
Random random2 = new Random();
int a = 0,b=0,c=0,d=0, e=0, f=0; //배열을 안쓰고 일일이 변수 지정해서 주사위 굴리기
for(int j = 0; j<10; j++) {
int r = (random2.nextInt(6));
if(r==1) {
a+=1;
}
else if(r==2) {
b+=1;
}
else if(r==3) {
c+=1;
}
else if(r==4) {
d+=1;
}
else if(r==5) {
e+=1;
}
else{
f+=1;
}
}
System.out.println("1의 개수:" + a);
System.out.println("2의 개수:" + b);
System.out.println("3의 개수:" + c);
System.out.println("4의 개수:" + d);
System.out.println("5의 개수:" + e);
System.out.println("6의 개수:" + f);
}
}
728x90
반응형
'국비과정 > 자바 선행학습 (1-17~1-21,22)' 카테고리의 다른 글
자바 선행학습 5일차 (마지막) - class, 생성자, 메소드 (0) | 2022.01.22 |
---|---|
자바 선행학습 5일차 (마지막) - ArrayList (0) | 2022.01.22 |
자바 선행학습 4일차 - class & method & 반복문게임 (0) | 2022.01.20 |
자바 선행학습 3일차 - Random, refactoring, 더블 for문, while & do-while, Date, SimpleDateFormat, equals(), String method (0) | 2022.01.19 |
자바 선행학습 1일차 - 기본 문법 (print, scanner, if, else) (0) | 2022.01.17 |