My footsteps

반복문 복습 / for, while, switch문 본문

국비수업/수업정리

반복문 복습 / for, while, switch문

밀김 2023. 2. 21. 10:28
728x90

 

 

 

 

package ex3.control;
public class Program {
	public static void main(String[] args) {

		int x = 0;
		
		while(x<20) {
        	     //2는 한번뿐이니, 한번실행
				if(x==2)
					System.out.println("a");
                    
                  ///여기서부터 else까지 20번   
				if(x==3)
					System.out.println("a");
				else
					System.out.println("a"); // 조건이 만족 못하면 여기서 스택이 계속 쌓임
				
                //4와6은 각각 한번뿐이니, 2번실행
                if(x==4)
					System.out.println("a");
				else if(x==6)
					System.out.println("c");
                    
                 ///여기서부터 맨 아래까지 20번   
				if(x==5)
					System.out.println("a");
				else if(x==6)
					System.out.println("c");
				else
					System.out.println("b");
		}
		System.out.println(x);
		
	}
}

if 조합 1번 

if  + else if 조합은 2번 

if + else 조합은 20번 

if + else if + else 조합은 20번 반복된다.  해서 저 구문은 총 43번!

else가 들어가면 일단 x<20 이부분에서 0~19 즉, 20번은 기본적으로 반복된다

* if-else 조합은 if 만족을 못하면 else로 내려간다. * 

*  다른거는 위에가 참이면 그냥 맨 밑으로 가서 출력하거나 하는데.. if는 위에 if가 참이어도, 아래 if문으로 내려간다.* 

 

 

 

저 출력구문만 이용하여 맨 아랫처럼 출력되게

 

package ex3.control;
public class Program {
	public static void main(String[] args) {

		int x=1;
		
		while(x< 19) {
			if(x%6==0) //6의배수이면 별이 출력되고
				System.out.print("*");
			else //그외에는 모두 0으로 출력
				System.out.print("0");
			
			x++;
		
		}	
	}
}

 

 

 

 


 

<for문>

 

- '특정수'만큼 반복 , while문에서 개선된 버전, 조건들을 한눈에 한줄에 볼수있어서 편함

 

 

 

 

- 0*문제 for문으로 바꾸면 이렇게..

package ex3.control;
public class Program {
	public static void main(String[] args) {

		for(int x=1; x<19; x++) {
            if(x%6==0) {
               System.out.print("*");
            } else 
               System.out.print("0");
         } 
		
		
		}
	}

 

 

 

* 코드는 나 말고 남이 봐도 이해갈수있게 직관적이게 짜야한다 *

 

 

 

 

 

for문을 이렇게도 쓸수있다

 

 

 

 

 

 

- 지역화 : 그 코드 내에서만 사용할수있게 다른 코드에는 안보이게(충돌나지않게) 가렸다..라는 말

package ex3.control;
public class Program {
	public static void main(String[] args) {

		{
			for(int x=0; x<19; x++)
				System.out.println("*");
		} //for문이 이끄는 문장이 하나일때는 {} 괄호 쓰지 않아도 됨
		
		
		{
			int x = 0;
			while(x<19) {
				
				System.out.print("0");
				
				if(x==5 || x==10 || x==15)
					System.out.print("*");
				x++;
			}	
		}//지역화를 하면 변수명이 같아도 충돌이 나지 않는다.
		

		
		for(int x=1; x<19; x++) {
			if(x%6==0)
				System.out.print("*");
			else
				System.out.print("0");
		}
			
		}
	}

- { } 괄호는 생략할수 있으면 생략할수 있는게 좋다. 불필요하게 쓰면 코드의 복잡도가 너무 올라간다

 

 

 

 

 

 

 

 

package ex3.control;
public class Program {
	public static void main(String[] args) {
		
		int i;
		
		for(i=0; i<=10; i++)
			if(i==0 || i==9)
				System.out.print("☆");
			else
				System.out.print(" ");
		
	}
}
package ex3.control;
public class Program {
	public static void main(String[] args) {
		
		int i;
		
		for(int j=0; j<5; j++) //문장 반복수
			for(i=0; i<10; i++) //별문장..
				if(i==0 || i==9) //별의 위치가 0이거나 9일때만 별을 찍고
					System.out.print("☆");
				else //그외는 다 공백문자로
					System.out.print(" ");
		
	}
}

- 이중 for문을 이용해 이 문장 자체를 또 다섯번 반복하게 만들수 있다

 

 

 

 

 

 

package ex3.control;
public class Program {
	public static void main(String[] args) {
		{
			
			
		for(int j=0; j<5; j++) {
			for(int i=0; i<10; i++) {
				if(i==0 || i==9)
					System.out.print("☆");
				else if(i==8)
					System.out.print("◇");
				else 
					System.out.print(" ");
			}
			
			System.out.print("@");	
			System.out.println();	
		}
		

		
		}
		
	}
}

 

- 괄호없으면 원하는 값이 안나온다!! 괄호 잘찍고, 중간중간 else-if 끼워넣기도 잘 이해하기

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90