Jam's story

7일차 본문

Java

7일차

애플쩀 2022. 2. 23. 17:45

 

안좋은 코딩

		for(int i=1; i<10; i++) {
			for(int j=2; j<6; j++) {
				System.out.printf("%d x %d= %d  ",j,i,i*j);
			}
			
			System.out.println();

		}
		System.out.println();
		for(int i=1; i<10; i++) {
			for(int j=6; j<10; j++) {
				System.out.printf("%d x %d= %d  ",j,i,i*j);
			}
			
			System.out.println();

		}
	}

좋은예 

for(int k=1; k<=2; k++) {
		for(int i=1; i<10; i++) {
			for(int j=4*k-2; j<=4*k-2+3; j++) {
				System.out.printf("%d x %d= %d  ",j,i,i*j);
			}
			
			System.out.println();

		}

구구단 3단씩 출력 

for(int k=1; k<=3; k++) {
			for(int i=1; i<10; i++) {
				for(int j=3*k-2; j<3*k-2+3; j++) {
					System.out.printf("%d x %d= %d  ",j,i,i*j);
				}
				System.out.println();
			}

 

-좋지않은 코딩 

10번일때, break문을 이용해서 빠져가는 것은 좋은 코딩이 아니다. sysout을 넣엇을때 xx가 다 출력된다. 

전체를 break해야지 좋은코딩 

조건식에 아예 조건을 쓰는게 좋은코딩 

break문 

가까운 반복문만 빠져나온다 

continue

반복문의 끝으로 간다 .

 

math.random() 을 아용하여 가장큰값 작은값 

	int[] num=new int[3];
	for(int i=0 ;i<3; i++) {
		num[i]=(int)(Math.random()*41+10);
		
		System.out.print(num[i]+"\t"); // min값이 안나와서 확인용으로 넣음 
	}
	int max=num[0]>num[1] ?(num[0]>num[2]? num[0]:num[2]): 
		(num[1]>num[2]? num[1]:num[2]);
	int min=num[0]<num[1] ?(num[0]<num[2]? num[0]:num[2]): 
		(num[1]<num[2]? num[1]:num[2]);
	System.out.printf("가장큰 수는 %d\n",max);
	System.out.printf("가장작은 수는  %d",min);
	}

아스키코드 

for(int i=0; i<=255; i++) { System.out.printf("%1$d %1$c",i); }

똑같은 문자를 대입할때는 %1$를 넣으면  하나만 적어도 가능 

 

10줄일때마다 계속하려면 엔터치세요 
		 int lineNumber=5;
			for(int i=0; i<=255; i++) {
				if(i %10==0)System.out.printf("%d: ",lineNumber++);
				System.out.printf(" [%c]",i);
				if(i%10==9) {
					System.out.println();
					if(lineNumber%10==1) {
						System.out.println("계속하려면엔터");
					}
				}

 

System.in.read() 
  • int 형 
  • 한문자만 가져온다 
  • 엔터칠때까지 기다린다 - 키보드로부터 입력엔터 블러킹(멈춤
System.in.skip()
System.in.skip(System.in.available());  
  •  남아있는 문자들을 스킵한다. 

 int lineNumber=1;
			for(int i=0; i<=255; i++) {
				if(i %10==0)System.out.printf("%d: ",lineNumber++);
				System.out.printf(" [%c]",i);
				if(i%10==9) {
					System.out.println();
					if(lineNumber%10==1) {
						System.out.println("계속하려면엔터");
						System.in.read(); //엔터칠때까지 멈춰있음
						System.in.skip(System.in.available());
				}//if
	}//if

}//for
Scanner 이용해서 10줄에 한번씩 엔터 입력받기 

1-2+3.....-10= -5

 

젤 좋은 코딩 

 

switcm 문 가위바위보 
System.out.println("가위바위보 입력해 ");
int user,com;

Scanner sc=new Scanner(System.in);
 user=sc.nextInt();

com=(int)(Math.random()*3)+1;

System.out.println("user은 "+user);
System.out.println("com은 "+com);

switch(user-com) {
case 2: case -1:
	System.out.println("user이 이김 ");
	break;
case 1: case -2:
	System.out.println("com이 이김 ");
	break;
case 0:
	System.out.println("비김");
	break;

package days07;

import java.util.Scanner;

/**
 * @author kenik
 * @date 2022. 2. 23. - 오후 4:23:28
 * @subject        p 150 예제 4-7  Ex07_02.java
 * @content 
 */
public class Ex07_02 {

   public static void main(String[] args) {
      //                                                     1        2        3  
      // 배열의 초기화                                0        1        2
      String [] rockPaperScissors =  { "가위", "바위", "보" };
      
      
      // 5:05 쉬는 시간 -> 20분 -> 5:30 풀이 오늘 수업 종료
      Scanner scanner = new Scanner(System.in);
      int user, com;  // 2 , 1
      char con ;  // y  n
      
      do {
         com =   (int)(Math.random() * 3)+1;  // 랜덤하게 입력..      
         System.out.println( "com = " + com );
         System.out.printf("컴퓨터는 \"%s\"를 냈다.\n",  rockPaperScissors[com-1]  );
         
         String sUser;
           String regex = "[1-3]";      
         do {
            System.out.print("> USER  가위(1)바위(2)보(3) 입력 ? ");
            sUser = scanner.next();  
         } while (  !sUser.matches(regex) );       
         user = Integer.parseInt(sUser);
         
         // [1].  *** 숫자 1,2,3 유효성 검사를 한 후에 -> user 변수 저장           입력잘못된 경우 다시 사용자 입력
         // [2]. com = 1 컴퓨터는 "가위"를 냈다.  ---------
         // 3. 다시 게임할거니 ? y
         
         switch (   user - com ) {
         case 0: 
            System.out.println("사용자 와 컴퓨터는 비겼다.");
            break;
         case 1: case -2 : 
            System.out.println("사용자 이겼다.");
            break;
         default: 
            System.out.println("컴퓨터 이겼다.");
            break;
         } // switch 
         
         System.out.print("> 가위바위보 게임 계속 할래 ? ");
         con = scanner.next().charAt(0);  // 'y'    'n'
      } while (   con == 'y' || con == 'Y' );
      
      
      
      System.out.println(" 게임 종료!!! ");

   } // main

} // class

 

'Java' 카테고리의 다른 글

9일차  (0) 2022.02.25
8일차  (0) 2022.02.24
5일차  (0) 2022.02.21
4일차  (0) 2022.02.18
3일차  (0) 2022.02.17
Comments