본문 바로가기

자바

Day2

조건문과 scanner를 이용한 간단한 장학금 지급여부 대상자 코드 짜기

package Workshop;
import java.util.*; // java scanner 사용
public class WorkShop2 {
	public static double getUserInput() { // 여러번 값을 입력할 수 있게 하는 메소드 호출문
		Scanner scanner = new Scanner(System.in); //참조타입으로 새로운 변수 저장
		Double inputString = scanner.nextDouble(); // 실수타입 형식의 스캐너 변수 저장
		return inputString; // 저장된 변수를 리턴
	}
	public static void main(String[] args) {

	double a,a1,a2,a3,a4; // 값을 담기 위해 변수 생성
	System.out.println("Computer Science 성적을 입력하세요 :");
		a = getUserInput(); 
	System.out.println("JavaPrograming 성적을 입력하세요 :");
		a1 = getUserInput();
	System.out.println("공학수학 성적을 입력하세요 :");
		a2 = getUserInput();
	System.out.println("오페라의 이해  성적을 입력하세요: ");
		a3 = getUserInput();
	System.out.println("배드민턴 성적을 성적을 입력하세요 :");
		a4 = getUserInput();
	System.out.println("==========================");
	double avg = (a+a1+a2+a3+a4) /5;
	System.out.println("평점은"+avg+"점 입니다.");
	// 각 과목별 성적이 2.5이상(한 과목이라도 2.5 미만시 ,과락으로 장학금 탈락
	//좀더 간결한 코드가 없을런지...?
	// 삼항 연산자 조건....?
	// 조건1) 평균이 3.7 이상 2)각 과목별 성적이 2.5이상 (2.5미만이라면 장학금 탈락)
	// 조건이 2개다 만족해야 하기 때문에 2중 한개라도 만족이 안된다면 출력문으로 정보전달
    if(avg <3.7) {
		System.out.println("평균이 안됩니다.");
	}else if(a<2.5 || a1<2.5 || a2<2.5 || a3<2.5 || a4<2.5) {
		System.out.println("과락이야 친구야.");
	}
	else {
		System.out.println("다음 학기 장학금 대상자 입니다.");
	}
	
	
	double b,b1,b2,b3,b4;
	System.out.println("Computer Science 성적을 입력하세요 :");
		b = getUserInput();
	System.out.println("JavaPrograming 성적을 입력하세요 :");
		b1 = getUserInput();
	System.out.println("공학수학 성적을 입력하세요 :");
		b2 = getUserInput();
	System.out.println("오페라의 이해  성적을 입력하세요: ");
		b3 = getUserInput();
	System.out.println("배드민턴 성적을 성적을 입력하세요 :");
		b4 = getUserInput();
	System.out.println("==========================");
	double avg1 = (b+b1+b2+b3+b4) /5;
	System.out.println("평점은"+avg1+"점 입니다.");
	if(avg <3.7) {
		System.out.println("평균이 안됩니다.");
	}else if(b<2.5 || b1<2.5 || b2<2.5 || b3<2.5 || b4<2.5) {
		System.out.println("과락이야 친구야.");
	}
	else {
		System.out.println("다음 학기 장학금 대상자 입니다.");
	}
	
	}

}

charAt() 메소드 : 문자열의 지정된 인덱스에 있는 문자를 반환함. 첫번째 문자의 색인은 0이고 두 번째 문자는 1이다.

기본형의 메모리 크기순서
byte -> short -> char -> int -> long -> float -> double

 

해당 타입이 표현할 수 있는 숫자범위를 초과 하는 값을 할당 할 경우 오버플로우 발생한다.

오버플로우는 casting 과정을 통해 형변환을 해줌으로 해결 할 수 있다. 

 

double과 float :부동 소수점 값  정밀도 는 소수점 뒤에 값이 가질 수있는 자릿수를 나타냅니다. 의 정밀도 float는 6 자리 또는 7 자리이며 double변수의 정밀도는 약 15 자리입니다. 따라서 double대부분의 계산 에 사용하는 것이 더 안전합니다  

 

java scope[자바 범위] : 변수는 생성된 범위 내에서만 엑세스 할 수 있다.

block scope[블록 범위] : 코드 블록은 중괄호 사이의 모든 코드를 나타낸다{}.

코드블록 내에서 선언된 변수는 변수가 선언 된 줄 다음에 나오는 중괄호 사이의 코드로만 엑세스 할 수 있습니다.

 

비교 연산자 [ == ] : String 에서 new 참조타입을 만들게 되면 새로운 객체가 만들어 지기 때문에  비교연산자[==]를

사용하면 같은 내용이더라도 false 값을 돌려받는다. 해결은 equals() 메소드사용

equals() : 두 문자열을 비교하여 문자열이 같으면 true를 반환하고 그렇지 않으면 false를 반환함.

public class example1 {

	public static void main(String[] args) {
	 String str = "hello";
	 String str1 = "hello";
	 String str2 = new String();
	 str2 = "hello";
	 System.out.println(str.equals(str1)); //true
	 System.out.println(str.equals(str2));// 참조객체는 다르지만 문자열이 같기 때문에 true
	 
	}

}

equalsIgnoreCase () 메서드 : 문자열을 비교하지만 대소문자를 무시하고 동일한지 확인한다.

scanner 클래스 : nextLine() : 문자열을 읽는 데 사용되는 메서드

※Scanner test = new Scanner(System.in) ; //스캐너 객체 생성

'자바' 카테고리의 다른 글

Day05  (0) 2021.05.10
1주차 예제를 통한 간단한 복습  (0) 2021.05.09
Day04  (0) 2021.05.07
Day03  (0) 2021.05.06
자바 Day1  (0) 2021.05.03