웹개발_JAVA 4
논리형(boolean)
참 : true
거짓: false
boolean(1byte) = true, false
조건식
결과가 참 또는 거짓, 둘 중 하나가 나오는 식.
참 또는 거짓 값.
예) boolean check = 10 == 11;
==> true or false 결과 '값'
관계 연산자
== :같다
!= :같지 않다
>, < :초과, 미만
>=, <= :이상, 이하
논리 연산자
&&(AND), A && B, 두 조건식 중 모두 참이면 참
||(OR), A || B 둘 중 하나라도 참이라면 참
단항 연산자
! (not), !A, 조건식이 참이면 거짓으로, 거짓이면 참으로 변경
package operTest;
public class Oper1 {
public static void main(String[] args) {
boolean isTrue = 10>6;
System.out.println(10==11); //false
System.out.println(10>3); //true
System.out.println(isTrue); //true
System.out.println(isTrue && 10!=10);//false
System.out.println(isTrue || 10!=10); //true
System.out.println(isTrue && !(10 !=10)); //true
}
}
삼항 연산자
? :, 조건식 ? 참: 거짓, 조건식이 참이면 참 거짓이면 거짓
ex) int result = 10 > 11 ? 10 : 11
삼항연산자를 사용할 때는
조건식이 딱 한 개 있을 때
package operTest;
import java.util.Scanner;
public class Oper2 {
public static void main(String[] args) {
// 두 정수 대소 비교
int number1 = 0, number2 = 0;
String message = "정수 두 개를 입력하세요",result = null;
Scanner sc = new Scanner(System.in);
System.out.println(message);
number1 = sc.nextInt();
number2 = sc.nextInt();
result = number1 > number2 ? "큰값:"+ number1
:number1 ==number2 ? "두 수는 같습니다"
: "큰값:" +number2;
System.out.println(result);
}
}
package operTest;
import java.util.Scanner;
public class Oper3 {
public static void main(String[] args) {
// 사용자에게 키를 입력받고
// 정수라면 정수로 출력
// 실수라면 실수로 출력
// 예) 183 -> 183 출력
// 183.5 -> 183.5 출력
// 183.0 -> 183 출력
//TODO 제대로 이해하고 다시 풀어보기
double height = 0.0; //입력받을 변수
String message = "키: ";
String format = null; // 출력형식
Scanner sc = new Scanner(System.in);
boolean isInteger = false;
int length = 0;
System.out.print(message);
height = sc.nextDouble(); //변수 타입에의해 double 타입으로 입력받음
length = (height - (int)height + "").length() - 2; //정수부분을 빼줘서 0.으로시작 소숫점 자리수 빼줌
isInteger = height - (int)height == 0; // 입력받은 double height에서 정수 부분만 빼서 0일때 false
// 즉 정수형일때 true
format = isInteger ? "%.0f" : "%." + length + "f";
//.0이면 소주 점을 떼어내고 아니면 소수점으로 저장
System.out.printf(format, height);//출력
}
}
package operTest;
import java.util.Scanner;
public class Oper4 {
public static void main(String[] args) {
// 심리 테스트
//
// Q. 당신이 좋아하는 색을 선택하세요.
// 1. 빨간색
// 2. 노란색
// 3. 검은색
// 4. 흰색
//
// 빨간색 : 불같고 열정적이고 적극적이다.
// 노란색 : 발랄하고 밝고 귀엽고 개성있고 착하다.
// 검은색 : 묵묵하고 든든하고 냉철하고 멋지다.
// 흰색 : 천사같고 깔끔하고 정리를 좋아하고 배려심이 많다.
Scanner sc = new Scanner(System.in);
String sellect = "Q 당신이 좋아하는 색을 선택하세요.",
red = "빨간색 : 불같고 정렬적이고 적극적이다.",
yellow = "노란색 : 발랄하고 밝고 귀엽고 개성있고 착하다",
black = "검은색 : 묵묵하고 든든하고 냉철하고 멋지다",
white = "흰색 : 천사같고 깔끔하고 정리를 좋아하고 배려심이 많다.",
result = null;
int color = 0;
System.out.println(sellect);
System.out.println("1.빨간색");
System.out.println("2.노란색");
System.out.println("3.검은색");
System.out.println("4.흰색");
color = sc.nextInt();
result = color ==1 ? red:
color ==2 ? yellow:
color ==3 ? black:
color ==4 ? white:
"다시 입력해주세요";
System.out.println(result);
}
}
제어문
▶ 조건문
▷ if문
if(조건식){
실행할 문장;
}
if(조건식){
실행할 문장;
}
if(조건식){
실행할 문장;
}...
if(조건식){
실행할 문장;
}else if(조건식){
실행할 문장;
}...
}else{
실행할 문장;
}
package controllStatement;
import java.util.Scanner;
public class IfTask {
public static void main(String[] args) {
String title = "Q. 당신이 좋아하는 색을 선택하세요.";
String menu = "1.빨간색\n2.노란색\n3.검은색\n4.흰색";
int choice = 0;
Scanner scan = new Scanner(System.in);
String redMessage = "불같고 열정적이고 적극적이다.";
String yellowMessage = "발랄하고 밝고 귀엽고 개성있고 착하다.";
String blackMessage = "묵묵하고 든든하고 냉철하고 멋지다.";
String whiteMessage = "천사같고 깔끔하고 정리를 좋아하고 배려심이 많다.";
String errorMessage = "다시 시도해주세요.";
String result = null;
System.out.println(title);
System.out.println(menu);
choice = scan.nextInt();
if(choice == 1) {
result = redMessage;
}else if(choice == 2) {
result = yellowMessage;
}else if(choice == 3) {
result = blackMessage;
}else if(choice == 4) {
result = whiteMessage;
}else {
result = errorMessage;
}
System.out.println(result);
}
}
package controllStatement;
import java.util.Scanner;
public class IfTest {
public static void main(String[] args) {
// 두 정수 대소비교
Scanner sc = new Scanner(System.in);
int firstNumber = 0, lastNumber = 0;
String message = "정수 두 개를 입력하세요", result = null;
System.out.println(message);
firstNumber = sc.nextInt();
lastNumber = sc.nextInt();
if(firstNumber > lastNumber) {
result = "큰 값: " + firstNumber;
}else if(firstNumber != lastNumber) {
result = "큰 값: " + lastNumber;
}else {
result = "두 수는 같습니다.";
}
System.out.println(result);
}
}
▷ switch문
switch(변수명){
case 값1:
실행할 문장;
break;
case 값2:
실행할 문장;
break;
case 값3:
실행할 문장;
break;
case 값4:
실행할 문장;
break;
...
default:
실행할 문장;
break;
}
삼항 연산자, if문 switch문의 비교
삼항 연산자 : 조건식이 1개 있을 경우 사용
if문: 조건식에 비교(<,>,>=,<=) 연산자를 사용하거나, 여러개의 조건식을 논리 연산자로 연결할 때 사용
switch문: 하나의 변수에 여러 개의 값이 담길 수 있고, 각 값이 같은지를 비교할 때 사용
package controllStatement;
import java.util.Scanner;
public class SwitchTest {
public static void main(String[] args) {
String title = "Q. 당신이 좋아하는 색을 선택하세요.";
String menu = "1.빨간색\n2.노란색\n3.검은색\n4.흰색";
int choice = 0;
Scanner scan = new Scanner(System.in);
String red = "불같고 열정적이고 적극적이다.";
String yellow = "발랄하고 밝고 귀엽고 개성있고 착하다.";
String black = "묵묵하고 든든하고 냉철하고 멋지다.";
String white = "천사같고 깔끔하고 정리를 좋아하고 배려심이 많다.";
String errorMessage = "다시 시도해주세요.";
String result = null;
System.out.println(title);
System.out.println(menu);
choice = scan.nextInt();
switch(choice) {
case 1:
result = red;
break;
case 2:
result = yellow;
break;
case 3:
result = black;
break;
case 4:
result = white;
break;
}
System.out.println(result);
}
}
*대입 연산자(복합 대입 연산자, 누적 연산자)
+=, -=, *=, /=, %=...
int money = 10000;
//money = money - 1500;
money -=1500;
System.out.println(money);
int data =10;
// data = data+1;
//data+=1;
data++;
System.out.println(data);
증감 연산자
++, --
전위형 : 해당 라인부터 바로 적용
++data, --data
후위형 : 다음 라인부터 적용
data++, --data
package operTest;
class Oper5 {
public static void main(String[] args) {
int data= 10;
// data = data+1;
// data += 1;
// data++;
System.out.println(data++); // 다음줄 부터 반영
System.out.println(data);
System.out.println(++data); // 현재줄 부터 반영
System.out.println(data);
}
}