Java/UI구현
2023.03.28 타입, 연산자, 조건문
amungstudy
2023. 3. 28. 16:00
배열
[]를 이용하여 표현
변수나, 값의 집합체
사용예시 : let numbers = [1,2,3,4,5];
변수는 인덱스값(순서값) 을 갖는다. 인덱스값은 0부터 시작
클래스
class 키워드로 선언을 해서 생성
변수선언, 함수선언, 배열선언 등등 을 할수 있다.
생성자를 갖을수 있다.
// human클래스
// class Human{
// constructor(){ //생성자.(클래스 객체가 생성될때 자동적으로 실행되는 영역)
// let name = "홍길동";
// let age = 0;
// }
// get name(){
// return this.name;
// }
// get age(){
// return this.age;
// }
// }
// let human1 = new Human(); //Human클래스를 이용하여 객체생성
// console.log(human1.name);
// console.log(human1.age);
타입 변환
JS에서는 타입검사가 엄격하지 않아서, 타입간의 변화도 유연하게 할수있다.
let num = 20; //변수 num은 타입이 number이고, 값은 20이 저장되어있다.
num = "20"; //변수 num에 문자열 20을 재할당.
묵시적 타입변환
문자열과 숫자를 연산할때 + 는 문자열로 만들어주고,
* , / , - 는 산술연산을 해준다.(단, 문자열이 숫자로 변환가능한 상태일때.)
console.log( 10 * "2");
명시적 타입변환
특정 타입으로 변환을 하겠다.
Number() , String() , Boolean() , Object()
let ten = Number("10");
console.log(typeof ten);
console.log(Boolean(1));
// boolean타입을 숫자로 변환하면
// 1 : true
// 0 : false
날짜를 문자열이나 숫자로 변환
let date = new Date(); //Date클래스를 객체로 생성
// 클래스를 객체로 생성시 규칙 : let(const) 변수명 = new 클래스명();
console.log(date.getDate()); // 날짜 를 숫자로 반환
console.log(date.getFullYear()); //연도를 숫자로 반환
console.log(date.getMonth()+1); //월을 숫자로 반환(0~11)까지 반환
//console.log()를 활용하여, Date객체도 활용하여,
// 2023-3-28 을 출력하도록 작성해봅시다.
let today = new Date();
console.log(`${today.getFullYear()}-${today.getMonth()+1}-${today.getDate()}`);
console.log(today.getFullYear()+"-"+(today.getMonth()+1)+"-"+today.getDate());
toString() 특정변수나 값을 문자열로 변환시켜주는 함수
console.log(today.getFullYear().toString());
let isTrue1 = true;
console.log(typeof isTrue1.toString());
Number()외에 문자열을 숫자로 변환 시켜주는 함수
parseInt() : 문자열을 정수로 변환
parseFloat() : 문자열을 소수점으로 변환
console.log( parseInt("6.5") );
console.log( parseInt("06") );
console.log( parseFloat("6.5") );
console.log( parseFloat("6.0") );
변수선언시 var와 let(const)의 차이점
// scope(블록, 영역) - js가 실행이 되는 영역
// 전역변수 - 전역으로 사용이 가능한 변수
// 지역변수 - 부분부분 scope에서 사용이 가능한 변수
let global = "전역변수";
// var global2 = "전역변수2";
{ // 지역 scope를 표현
let local = "지역변수"; // 해당하는 지역scope내부에서만 사용가능
// var local2 = "지역변수2";
console.log(global);
console.log(local);
}
console.log(global);
console.log(local); //출력이 안될것
JS의 다양한 연산자
<script>
//산술연산자 : 두개의 향으로 숫자연산을 할 때 사용
// +, -, *, /, %, **
console.log( 5 / 2); //일반적인 몫을 구하는 / 연산
console.log( 5 % 2); //나머지값을 구하는 %연산
console.log( 2** 3); // 2의 3승
let one = 1;
let five = 5;
let seven = 7;
let result = seven * five;
console.log("산술연산의 결과 : ",result);
//연산하는 순위도 우리가 알고있는 산술연산의 우선순위와 같다.
console.log((one+five)*seven);
// ++, -- 후위(전위)연산 - 총칭 [증감연산자]
let count = 0;
// let preCount = ++count; // preCount = (coundt = count + 1);
// console.log(preCount); //1을 출력
// console.log(count);
let postCount = count++;
// postCount = count; // 결과적으로 0이 저장됨
// count = count + 1; // 1이 저장됨
console.log(postCount);
console.log(count);
// 대입 연산자
// =, += , -=, *=, /=, %=, **=
// = : 오른쪽에 있는 값을 왼쪽에 저장을 시키겠다.
let operator1 = 1;
// +=~**= : 왼쪽(변수)과 오른쪽(값)에 있는 값을 연산하고, 왼쪽에 저장시키겠다.
let count1 = 0;
count1 += 1; // count1 = count1 + 1;와 같은 의미
console.log(count1);
//논리연산
// && , || , !
// && (논리곱) : 두개(이상의) 항의 논리곱이 true일때만 true를 반환
// 항 전체가 참이어야 참(true)을 반환한다. 그 외는 전부 거짓(false)
console.log("----------&&(논리곱)---------");
console.log( true && false);
const value1 = false;
const value2 = 4 < 2; //false
console.log(value1 && value2);
console.log("----------||(논리합)---------");
// || (논리합) : 두개(이상의) 항중에 하나라도 true이면 true를 반환한다.
console.log(true || false);
const value3 = true;
const value4 = 4 < 2; // false;
console.log(value3 || value4);
console.log("----------!(논리부정)---------");
// 하나의 항만으로 연산이 가능하다.
// !(부정) : 값이 true -> false; false -> true;
console.log( !value3 );
//비교연산자
// 두가지항을 비교할때 사용하는 연산자
// ==, ===, !=, !==, >, >=, <, <=
// == : 두항의 값이 같은지 비교해주는 연산자
console.log("----------비교연산자---------");
console.log( 6 == "6"); //묵시적타입변환의 특성때문에 true
console.log( 6 === "6"); // 실제타입까지 비교를 하니까 false
console.log(6 !== "6" ); //두개의 값이 같지 않다 자체를 비교하니까 true
console.log(5 != 6); // true값이 반환이 된다.
//삼항연산자
console.log("----------삼항연산자---------");
let user = "관리자";
console.log(user == "회원" ? "당신은 회원입니다.":"당신은 관리자입니다.");
// 삼항연산자의 형태
// (조건) ? (참일경우 수행): (거짓일경우 수행);
let isAdmin = user == "회원" ? "회원님이 로그인 하였습니다." : "관리자님이 로그인 하였습니다.";
console.log(isAdmin);
console.log( 3>1 ? true : false);
///연습문제
// 각자리의 숫자들의 합
// 123 -> 6, 745 -> 16
let num = 12345;
let num1 = num % 10; // 12345 / 10 의 나머지값을 반환 -> 5를 반환
num = parseInt(num/10); // 1234.5 -> 1234
let num2 = num % 10;
num = parseInt(num/10); // 123.4 -> 123
let num3 = num % 10;
num = parseInt(num/10);
let num4 = num % 10;
num = parseInt(num/10);
let num5 = num % 10;
console.log('각자리의 수를 출력');
console.log(num1);
console.log(num2);
console.log(num3);
console.log(num4);
console.log(num5);
console.log(); //여기서 1+2+3+4+5의 결과값인 15가 출력이 되도록 소스코드를 작성 해봅시다.
조건에 따라 실행의 흐름을 제어할수있는 조건문
<script>
//조건문의 종류
// 1. if 문 {if, if else, else if, else}
// if문의 기본형태 : if(조건(표현)식){ 조건이 참인 경우 수행되는 수행문 }
let a=3, b=5;
if( a == b){ //a와 b가 같으면 중괄호 안에 수행문을 실행한다.
console.log("a와 b는 같습니다."); //조건이 부합하지 않으니, 실행x
}
if (a==3) console.log("a는 3입니다."); //if문의 수행문이 한줄이면 {}를 생략가능.
//if else문 의 기본형태 : if(조건(표현)식){참인경우 수행} else{거짓인경우 수행}
let user = "관리자";
if(user == "회원"){ //user변수의 값과 문자열"회원"이 같을경우에
//조건이 참이 될때 실행문
console.log("회원님이 로그인 하셨습니다.")
} else{ //위의 if문의 조건이 거짓일경우 중괄호 아래의 수행문을 실행
console.log("관리자님이 로그인 하셨습니다.")
}
// else if문 의 기본 형태
// if문 이외의 조건을 추가해야하는 상황에서 else if문을 사용하면 된다.
/*
if(조건(표현)식){
조건(표현)식이 참인경우의 수행문
}else if(조건(표현)식2){
조건(표현)식2 이 참일경우의 수행문
}else{
조건1, 조건2이 모두 거짓일 경우의 수행문
}
// */
// let score = 94;
// if(score >= 70 && score < 80){//점수가 70점이상이고, 80점미만일때
// console.log("당신의 점수는 C입니다.");
// }else if(score >= 80 && score < 90){
// console.log("당신의 점수는 B입니다.");
// }else if(score >= 90){
// //if문을 추가하여 95점 이상이면 A+
// // 90~94점이면 A출력이 되도록.
// console.log("당신의 점수는 A입니다.");
// }else{
// //위의 조건 세가지가 전부 거짓일경우 수행됨.
// console.log("당신의 점수는 D입니다.")
// }
//if문안에 if문이 중첩되어 사용가능하다.
//제어문안에 제어문을 중첩하여 사용도 가능하다.
// let score = 95;
// if(score >= 70 && score < 80){//점수가 70점이상이고, 80점미만일때
// console.log("당신의 점수는 C입니다.");
// }else if(score >= 80 && score < 90){
// console.log("당신의 점수는 B입니다.");
// }else if(score >= 90){
// //if문을 추가하여 95점 이상이면 A+
// // 90~94점이면 A출력이 되도록.
// if(score >= 95){
// console.log("당신의 점수는 A+입니다.");
// }else{
// console.log("당신의 점수는 A입니다.");
// }
// }else{
// //위의 조건 세가지가 전부 거짓일경우 수행됨.
// console.log("당신의 점수는 D입니다.")
// }
// 2. switch 문
// switch문의 형태
/*
switch(변수(조건)){
case 값1:
조건(변수)의 값이 값1일경우 수행문;
break;
case 값2:
조건(변수)의 값이 값2일경우 수행문;
break;
default:
조건(변수)의 값이 case절에 해당하지 않을 경우 수행문;
break;
}
*/
let browser = "IE";
switch(browser){
case "IE":
console.log("IE 브라우저 입니다.");
break; //브레이크문이 없으면 조건에 부합하는 case절 아래의 수행문을 전부 실행시킨다.
case "FireFox":
console.log("파이어폭스 브라우저 입니다.");
break;
case "Safari":
console.log("사파리 브라우저 입니다.");
break;
default:
console.log("크롬입니다.");
break;
}
// 사용자에게 특정값을 입력을 받아서
// 조건문을 실습해보도록 하겠습니다.
// let inputText = prompt("이름을 입력해 주세요.","한글로 입력할것.");
// alert("당신의 이름은 : "+inputText+"입니다.");
//위의 prompt함수를 응용해서 성적처리 프로그램을 만들어봅시다.
// ex) 89 -> 당신의 성적은 B+입니다. 출력하도록 합시다.
// 성적의 기준은 다음과 같다.
// 95~100 : A+
// 90~94 : A
// 85~89 : B+
// 80~84 : B
// 75~79 : C+
// 70~74 : C
// 65~69 : D+
// 60~64 : D
// 60점 미만 : F
//입력한 값이 숫자일때만 작동하도록(1~100)
//입력한 값이 숫자가 아닌경우에는 숫자가 아니라는 메세지를 전달하도록
//소스코드를 수정 및 추가해봅시다.
let score = prompt("점수를 입력하시오.","숫자로 입력할 것.");
if(score>=95){
if(score>100){
alert("100이하의 숫자만 입력하시오.");
}else{alert("당신의 성적은 A+입니다.");}
}else if(score>=90){
alert("당신의 성적은 A입니다.");
}else if(score>=85){
alert("당신의 성적은 B+입니다.");
}else if(score>=80){
alert("당신의 성적은 B입니다.");
}else if(score>=75){
alert("당신의 성적은 C+입니다.");
}else if(score>=70){
alert("당신의 성적은 C입니다.");
}else if(score>=65){
alert("당신의 성적은 D+입니다.");
}else if(score>=60){
alert("당신의 성적은 D입니다.");
}else if(score>=1){
alert("당신의 성적은 F입니다.");
}else{
alert("입력한 값이 숫자가 아닙니다.");
}