Small Grey Outline Pointer 연산자/제어문
본문 바로가기
Dev./java

연산자/제어문

by sso. 2022. 4. 20.
package javaFirstClass;

public class Chapter03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
//0420 연산자
		
		short s1=2; //쇼트형 변수 2
		short s2= +s1; 
		//자바에서는 +를 연산자로 인식하고 있다.
		//+s1 => 인트형 s1, 한번 더 더하라는 뜻
		//오류가 나지 않게 하려면 강제형변환 하거나 + 부호를 빼야한다
		
		System.out.println(s2);
		
	}

}

오류 발생

 

 

package javaFirstClass;

public class Chapter03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
//0420 연산자
		
		short s1=2; //쇼트형 변수 2
		short s2= s1; 

		
		System.out.println(s2);
		
	}

}

2

 

 


package javaFirstClass;

public class Chapter03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
//0420 연산자
		double e1=3.5;
		double e2=-e1;

		
		System.out.println(e2);
		
	}

}

-3.5

 

실수는 더블형을 기본으로 연산한다

더블e1, 더블e2, 값을 반환하는 것도 더블형이므로 값이 잘 나온다

 

컴파일 오류가 나지 않게 하려면 명시적으로 형변환을 해줘야 한다 

 

 

 

증감 연산자

package javaFirstClass;

public class Chapter03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//0420 연산자
		
		//증감연산자
		int num=7;
		
		
		System.out.println(++num); //전위연산자 먼저 1증가시킨다 = 8
		System.out.println(num++); 
		//후위연산자 변수값을 먼저 출력시킨후 1증가한다 =8 
		//출력이 끝난 후 1이 증가되어 다음출력시 9라는 값이 나온다
		System.out.println(num); // 9
		
	}

}

 

8

8

9

 


 

비트 연산자

AND & a&b 변수 a, b 비트 단위의 AND
OR | a|b 변수 a, b 비트 단위의 OR
XOR  ^ a^b 변수 a, b 비트 단위의 XOR
NOT ~ ~a 변수 a의 단위의 부정

 

package javaFirstClass;

public class Chapter03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//0420 연산자
		
		
		byte n1=13; //13(2)=> 0001101
		byte n2=7; // 7(2)=> 0000111
		byte n3=(byte)(n1&n2);
		System.out.println(n3);
	}

}

5

 

n1 & n2 => & : 둘다 트루 일 때 1을 반환

0001101

0000111

======

0000101 => 10진법 5로 반환 된다

 


제어문 : 실행 흐름의 컨트롤

 

[조건문]

if문 : if > 만약 ~라면

 

 

if문

package javaFirstClass;

public class Chapter03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//제어문
		
		int a=1;
		int b=3;
		int sum= a+b;
		
		if(sum>0)
		{
			System.out.println("정답입니다!~");
		}
			
	}

}

정답입니다!~

 

 

if(조건식){

실행부분

}

 

조건식: 식의 결과가 참 또는 거짓으로 구분될 수 있는 문장

실행부분: 조건식의 결과가 참이면 실행할 문장

 

 

if~else문

package javaFirstClass;

public class Chapter03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//제어문
		
		int a=1;
		int b=3;
		int sum= a+b;
		
		if(sum<0)
		{
			System.out.println("오답입니다!~");
		}
		else
		{
			System.out.println("정답입니다!~");
		}
			
	}

}

정답입니다!~

 

if~else문

 

if(조건식){

실행 부분1

}

else{

실행 부분2

}

 

 

조건식: 식의 결과가 참 또는 거짓으로 구분될 수 있는 문장

실행부분1 : 조건식의 결과가 참이면 실행할 문장 (거짓일 경우 if문을 빠져나와 else문이 실행 된다)

실행부분2 : 조건식의 결과가 거짓이면 실행할 문장

 

		if(sum<0)
			System.out.println("오답입니다!~");
		
		else
			System.out.println("정답입니다!~");

중괄호를 사용하지 않아도 조건문 인식을 한다

중괄호 안에 실행되는 명령이 한줄로 되어있다는 조건하에 중괄호를 생략할 수 있다

강제성은 없지만 개발자들이 이러한 형식으로 사용하기도 한다

 

 

if~else if(~else)문

package javaFirstClass;

public class Chapter03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//제어문
		
		int a=20;
		int b=10;
		int sum=a+b;
		
		if(sum<0){
			System.out.println("a+b=30");
		}
		else if(sum>100){
			System.out.println("30<100");
		}
		else {
			System.out.println("위의 모든 조건 충족 안함");
		}
			
	}

}

위의 모든 조건 충족 안함

 

 

if(조건1){

실행 부분1

}

else if(조건2){

실행 부분2

}

else if(조건3){

실행 부분3

}

else{

실행 부분4

}

 

 

switch문

package javaFirstClass;


public class Chapter03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//제어문
		
			
		int a=4;

		switch(a) {
			case 1:
				System.out.println("1");
				break;
				
			case 2:
				System.out.println("2");
				break;
				
			case 3:
				System.out.println("3");
				break;
				
			case 4:
				System.out.println("4");
				break;
				
			default:
				System.out.println("알수없음");
				
		}

	}
}

 

4

 

 

 

package javaFirstClass;
import java.util.*; 

public class Chapter03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//제어문
		
			
		int a=1;

		switch(a) {
			case 1:
				System.out.println("1");
			
				
			case 2:
				System.out.println("2");
				break;
				
			case 3:
				System.out.println("3");
				
				
			case 4:
				System.out.println("4");
				
			default:
				System.out.println("알수없음");
				
		}
		
		System.out.println("없습니다");

	}
}

1
2
없습니다

 

 

a=1 이고 

case 2 에서 break가 걸려있기 때문에

1 출력

2 출력 후 종료 

 

스위치문을 빠져나와 없습니다 출력

 

 

package javaFirstClass;


public class Chapter03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//제어문
		
			
		int book=2;
		book=book/10;
		switch(book) {
			case 0:
				System.out.println("노력하세요");
				break;
				
			case 1:
				System.out.println("책을 즐겨 읽으시네요");
				break;
				
			case 2:
				System.out.println("책을 사랑하시는군요");
				break;
				
			default:
				System.out.println("다독왕 입니다");
				
		}

	}
}

노력하세요

 

 


반복문

 

횟수 for

만족 while/do while

 

 

do~while문

 

package javaFirstClass;
//import java.util.*;

public class prac_for {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		
		int num=0;
		
		do {
			System.out.println("i love java" +num);
			num++;
		}while(num<3); 
			
		

	}
}

 

i love java0
i love java1
i love java2

 

 

 

package javaFirstClass;


public class Chapter03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//반복문 1~4까지 출력 시키기
		
		
		
		int i=1;
		
		//while문 안에 if문 사용하기
		while(i<5){
			if(i<5) {
				System.out.printf("%d\n",i);
                //break; 여기서 브레이크를 걸어버리면 1만 출력되고 if문을 빠져나온다
			}

			else {
				System.out.printf("해당없음");
			
			}
			i++; //while문 끝나고 증감시켜야 무한반복x
		}
		
        
        
		//while문
		while(i<5) {
			System.out.printf("%d 입니다\n", i);
			i++;
		}
		
        
        
		//do~while문
		do {
			System.out.printf("%d 입니다\n",i);
			i++;
		}while(i<5);

	}
}

 

 

 

1

2

3

4

 


 

 

break / continue

 

 

package javaFirstClass;

public class break문제 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int num=1; 
		boolean search = false;
		불린이라는 논리자료형, search 변수에 false로 선언
		
		
		//while 처음으로 만나는 5의배수이자 7의 배수인 수를 찾기
		while(num<100) {
			if((num%5==0) && (num%7==0)) {
				search=true;
				break; //서치 값이 트루가 되면 탈출한다
			}
			num++;
		}
		
		if(search) { //search값이 true일 때 실행하는 조건문
			System.out.println("찾는 정수: " +num);
		}

		
		
		
		//for문 처음으로 만나는 5의배수이자 7의 배수인 수를 찾기
		for(; num<100; num++) {
			if((num%5==0) && (num%7==0)) {
				
				System.out.println("찾는 정수: " +num); //출력을 하고
				break; //브레이크로 반복문 탈출
			}
		}
		
		

	}

}

찾는 정수: 35

 

 

 

 

예시

continue 사용해서 1~100까지 5&7의 배수 모두 출력

 

 

package javaFirstClass;

public class break문제 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		//5,7의 배수가 무엇이며 몇개인지 찾는 while 반복문을 for문으로 바꿔보기
		int num=0;
		int cnt=0;
		
		
		while((num++)<100) {
			if((num%5!=0) || (num%7!=0)) {
				continue;
				5,7로 나눠 떨어지지않으면 컨티뉴
			}
			cnt++;
			System.out.println(num);
		}
		System.out.println("cnt: "+cnt);
		
		
		
		
		//for문 처음으로 만나는 5의배수이자 7의 배수인 수를 모두 찾기
		int cnt=0;
		
		for(int num=1; num<100; num++) {
			if((num%5==0) && (num%7==0)) {
				
				cnt++;
				System.out.println("찾는 정수: " +num);
			}
		}
		System.out.println("cnt개수: "+cnt);
		
		
	

	}

}

 

찾는 정수: 35
찾는 정수: 70
cnt: 2

 

 

 

 


 

무한루프

 

package javaFirstClass;

public class continue문제 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//무한루프 
		
		int num=1;
		//6의배수이자 14의 배수인 가장 작은 정수를 찾는 반복문, 무한루프 빠져나가기
		while(true) {
			if(num%6==0 && num%14==0) {
				System.out.println(num);
				break;
			}
			num++; //if문 안의 조건에 만족하면 브레이크, 그게 아니라면 num++
		}
		
		
	

	}

}

42

 

 

 

 

 

package javaFirstClass;

public class continue문제 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		

		
			
		//2중 for문
		for(int i=0; i<3; i++) {
			System.out.println("--------------------");
			for(int j=0; j<3; j++) {
				System.out.print("["+i+", " + j +"]");
				//[i, j] 를 출력하는 문장
			}
			System.out.print("\n");
		}
		
	

	}

}

--------------------
[0, 0][0, 1][0, 2]
--------------------
[1, 0][1, 1][1, 2]
--------------------
[2, 0][2, 1][2, 2]

 

 

 

 

 

package javaFirstClass;

public class continue문제 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		

	
		
		
		//구구단 2-9단
		for(int i=2; i<=9; i++) { //2단부터 9단까지
			for(int j=1; j<=9; j++) { //N * 1~9까지 
				System.out.println(+i +"X"+j+"="+i*j);
			}
		}
		System.out.println("\n");
		
		
	
	}

}

 

 

 

 

package javaFirstClass;

public class continue문제 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//구구단 for문 사용하기
		for(int i=2; i<=9; i++) { //2단부터 9단까지
			for(int j=1; j<=9; j++) { //N * 1~9까지 
				System.out.println(+i +"X"+j+"="+i*j);
			}
		}
		System.out.println("\n");
		
		
		
		
		//구구단 while문으로 바꿔보기
		int i=2;
		
		while(i<=9) {
			int j = 1;
			while(j<=9) {
				System.out.println(i +"X"+j+"="+i*j);
				j++;
			}
			
			i++;
		}
		
		
		
	}

}

 

 

 

 

 

 

 

 

728x90

'Dev. > java' 카테고리의 다른 글

Java 조건문(if~else)  (0) 2022.04.23
Java String  (0) 2022.04.23
Java Scanner/ next, netxLine  (0) 2022.04.23
Java 연산자/instanceof 연산자  (0) 2022.04.18
Java의 시작, 변수와 상수  (0) 2022.04.15

댓글