자바 기초(증감연산자)

bitna's study note·2022년 3월 7일
0

자바

목록 보기
8/119

3월 7일 내용정리
*복습하기
<논리연산자>
결과는 true, false로 나옴 ->true 와 false를 따질수 있다면 조건식 이라한다.

쇼트서킷:논리 연산자에 연결된 모든 조건식을 수행하지 않고 필요한 조건식만 수행하는 것

-&&:그리고 (and) 둘중의 모두 true여야 결과가 true이다.
&&연산자는 왼쪽이 false가 나오면 오른쪽 부분은 검사를 아예안하니까 오른쪽에 증감식을 넣으면 계산이 안됨.

-|| : 또는 (or) 둘중의 하나만 true이면 결과가 true이다.
||연산자는 왼쪽이 true나오면 오른쪽은 검사를 아예안하므로 오른쪽에 증감식 넣으면 계산이 안됨.

-! : 결과식의 반대 !(true) ---> false , !(false) ---> true

-컴터는 0 - false, 0이외의 모든숫자 - true 로 인식 한다.

1.<증감연산자>
증가 연산자, 값을 1씩 증가
++i => i = i +1 (전치 또는 전위형 이다. 나먼저 증가하고 계산에 참여할께)
i+=1 (축약형)

a=3
b=1
b=++a +b b=5가됨
++a=>3+1 가되고 b값을 더한다. ++a를 먼저 증감식을 적용하여 먼저 계산한다.

i++ => i = i+1(후치 또는 후위형 이다. 계산먼저 하고 나중에 내가 증가할께)
i+=1(축약형)

a=3
b=1
b=a++ +b b=4가됨
a+b를 먼저 계산하고 a++를 증가한다.

2.<감소연산자>
-- 감소연산자,1을 감소한다.
--i => i = i - 1 (전치 또는 전위형 이다.나 먼저 빼고 계산에 참여할께.)
i - =1(축약형)

i-- => i = i - 1;(후치 또는 후위형 이다. 먼저 계산에 참여하고 난 후에 빼기할께.)
i - =1(축약형)

3.<조건 연산자, 삼항 연산자>
조건식 ? 식의 결과가 참일때 실행한 문장: 조건식의 결과가 거짓일 때 실행한 문장
예)class1 % 2==1?"청팀":"홍팀"

4.짝수/ 홀수 판별
숫자%2 ==1 --->홀수
숫자%2 ==0 --->짝수
숫자%n ==0 --->n의 배수
예 ) 숫자 % 3 ==0 --->3의 배수
예 ) 숫자 % 5 ==0 --->5의 배수

예) num=79 이 홀수 인지 짝수 인지 판별
String result=(num%2==1) ? "홀수":"짝수"

package example_0307;

	public class study_0307 {

		public static void main(String[] args) {
			
			// 문1 다음 소스코드들을 보고 출력 결과를 예측하시오.
			      
			   int x=0, y=1;
			   System.out.println((x < 1) || (y-- < 1));  // 0<1 or 1 <1  -> true or false ->true ----------->해설 쇼트서킷때문에 왼쪽만 계산하고 오른쪽 계산안함
			    System.out.println("1) x = " + x + ", y = " + y);  // x=0 or y=-1 ----------->x=0 or y=1 
			    
			    x=0; 
			    y=1;
			   System.out.println((x >1) || (--y < 1));  // 0>1 or 0<1 -> false or true ->true  ----------->전위형 이므로 먼저 계산하고 비교논리함
			    System.out.println("2) x = " + x + ", y = " + y);  // x=0 y=0 
			    
			    System.out.println((x > 1) && (y-- < 1));  // 0>1 && 1<1 -> false && false ->false ----------->해설 쇼트서킷때문에 왼쪽만 계산하고 오른쪽 계산안함
			    System.out.println("3) x = " + x + ", y = " + y);  // x=0,y=0----------->x=0,y=1
			    
			//문2 다음 출력 결과를 예측
			    int a=5;
			    a++;
			    System.out.println(a); //a=6
			    
			    a=5;
			    ++a;
			    System.out.println(a); //a=6
			      
			      
			  //문3 다음 결과를 예측하시오.
			    int j=5, k=0;
			    System.out.println("j = j++; 실행 전 , j = " + j + ", k = " + k);  //j=5, k =0
			    
			    k = j++;
			    
			    System.out.println("j = j++; 실행 후 , j = " + j + ", k = " + k);  // j를 k에 먼저 넘겨주고, j증가. j=6, k =5
			    
			    
			      
			    j=5;
			    k=0;
			    
			    k = ++j;
			    System.out.println("j = ++j; 실행 후 , j = " + j + ", k = " + k);     // j먼저 증가하고 j를 k에 넘겨준다. j=6, k=6 
			 


		}

	}

문제 풀이

package practice_0307;
import java.util.Scanner;

public class practice_0307 {
	public static void main(String[] args) {
		/*// 문4. 반을 입력 받아서  반이 홀수이면 '청팀', 짝수이면 '홍팀'으로 출력하시오.	
		Scanner scan=new Scanner (System.in);
		System.out.println("반을 입력하시오");
		int class1 = scan.nextInt();
		
		if(class1 % 2==1) {
			System.out.println("청팀");
		}else {
			System.out.println("홍팀");
			} 
		 System.out.println(class1 % 2==1?"청팀":"홍팀"); ------>삼항 연산자 적용해서 풀기
		
		 // 문5. 숫자를 입력 받아서 숫자가 2의 배수이거나 또는 5의 배수이면 '제주도 여행', 그렇지 않으면 '울릉도 여행'
		//Scanner scan=new Scanner (System.in);
		System.out.println("숫자를 입력하시오01");
		int num01 = scan.nextInt();
		
		if(num % 2==0 || num % 5==0) {
			System.out.println("제주도 여행");
		}else {
			System.out.println("울릉도 여행");
		}
		// "이거나" 는 || , "이되"는 && ,컴터는 ||와 && 가 있으면 && 를 먼저 계산 하므로 괄호를 사용하여 먼저 계산할거를 정해줌
		//String result=(num % 2==0)||(num % 5==0)?"제주도 여행":"울릉도 여행" ------> 길이가 길때는 변수에 저장해서 출력한다.
		//System.out.println(result);
		
		// 문6. 숫자를 입력 받아서 숫자가 2의 배수이거나 3의 배수이되 6의 배수는 아닌 것
			   //Scanner scan=new Scanner (System.in);
				System.out.println("숫자를 입력하시오02");
				int num02 = scan.nextInt();
				19
				if(num02 % 2==0 || num02 % 3==0 && !(num02%6==0)) {  
				//boolean(result01= (num02 % 2==0) || (num02 % 3==0) && num02%6!==0? true:false)------>삼항 연산자 적용해서 풀기
					System.out.println("true");
				}else {System.out.println("false");
				}
		
		
		
		//문7. 연도를 입력 받아서 윤년인지 아닌지 판별하기(연도가 4로 나누어 떨어지거나 100으로는 나누어 떨어지지 않고, 400으로는 나누어 떨어지는 해)
		 //Scanner scan=new Scanner (System.in);
		 System.out.println("년도를 입력하시오");
		 int num03 = scan.nextInt();
		 if(num03 % 4==0 || !(num03 % 100==0) && num03 %400==0 ) {
			 System.out.println("윤년");
		 }else {
			 System.out.println("윤년 아님");
		 }
		
				
		//문8. 24보다(num) 크면서 가장 가까운 10의 배수에서 24를(num) 뺀 나머지를 구하시오. int num=24; 를 활용
		Scanner scan=new Scanner (System.in);
		System.out.println("숫자를 입력하시오04");
		int num04 = scan.nextInt();
		int num05=24;
		if(24<num04) {
			System.out.println((((num04/10)+1)*10)-num05);
		}else {
			System.out.println("24이상 숫자를 입력하세요");
		}*/
		
		
		
		//문9. 4자리 숫자를 입력받아서 각 자릿수를 더한 합을 구하시오.
		
		
		
		Scanner scan=new Scanner (System.in);
		 System.out.println("숫자를 입력하시오");
		 int num06 = scan.nextInt();
		 
		 /*int num06 = scan.nextInt();
		 int num07=num06%10;
		 num06=num06/10;
		 int num08=num06%10;
		 num06=num06/10;
		 int num09=num06%10;
		 num06=num06/10;
		 int num10=num06%10;
		 
		 System.out.println(num07+num08+num09+num10);  풀이1*/ 
		 
		 int sum=0;
		 int num07=0;
		 int num08=num06%10;
	   for(int i=0;i<4;i++) {  //풀이 2
		 num06=num06/10;
		 num07=num06%10;
		 sum=sum+num07;
		 }
	   System.out.println(sum+num08);
	   }
	}
profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글

관련 채용 정보