웹개발 수업/JAVA

웹개발_JAVA 4

gugigugi92 2023. 1. 18. 17:49

논리형(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);
	}

}

출력결과