반복문,조건문을 이용한 대소문자 변환


ASCII CODE를 이용한 대소문자 변환입니다.


 public class AsciiReverse {

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int i=0;
        
        while(true){
        System.out.print("문자열을 입력하세요 : ");
        String input= s.nextLine();
// 한글자씩 담을 char[]형 배열선언
        char change[] = new char[input.length()]; 
        
        if(input.equals("stop")) // stop을 입력할 때까지 반복
        {
            System.out.println("이용해주셔서 감사합니다.");
            break;
        }
        
        else{
        for(i=0; i<input.length(); i++)
        {
                change[i]=input.charAt(i);
                if(change[i]>=65 && change[i]<=90) // 대문자이면
                    change[i]+=32; // 소문자로 변환
                else if(change[i]>=97 && change[i]<=122) // 소문자이면
                    change[i]-=32; // 대문자로 변환
                    System.out.print(change[i]);
        }
            System.out.println();
        
        }// close else{}
        
        }//close while()
        
    }
}

(실행 결과)

문자열을 입력하세요 : Have A Nice Day!!

hAVE a nICE dAY!!
문자열을 입력하세요 : stop
이용해주셔서 감사합니다.



반복문,조건문을 이용한 Fizz-Buzz 게임


 Fizz-Buzz 게임 규칙 : 3,6,9게임과 유사한 게임으로 특정 숫자 2개를정하고, 첫번째 수의 배수이면 Fizz 두번째 수의 배수이면 Buzz 두 수의 공배수이면 fizzbuzz를 외치는 게임


 for문과 while문을 이용해서 메소드로 구현하고 호출해서 사용하는 코드입니다.



import java.util.Scanner;
public class FizzBuzz {
        void FizzFor() // for문을 이용한 메소드
        {
            for(int i=1; i<101; i++)
            {
                if(i%3==0 && i%5==0)
                {
                    System.out.print("FizzBuzz ");
                }
                else if(i%3==0)
                {
                    System.out.print("Fizz ");
                }
                else if(i%5==0)
                {
                    System.out.print("Buzz ");
                }
                else
                {
                    System.out.print(i+" ");
                }
            }
    
        }
        
        void FizzWhile() // While문을 이용한 메소드
        {
                int i=1;
                while(i<101)
            {
                if(i%3==0 && i%5==0)
                {
                    System.out.print("FizzBuzz ");
                }
                else if(i%3==0)
                {
                    System.out.print("Fizz ");
                }
                else if(i%5==0)
                {
                    System.out.print("Buzz ");
                }
                else
                {
                    System.out.print(i+" ");
                }
                i++;
            }
    
        }
    public static void main(String[] args) {
        // 5의 배수가 fizz 7의배수가 buzz
        while(true){
            Scanner s=new Scanner(System.in);
            System.out.print("원하시는 숫자를 선택하세요. \n 1]FizzFor() 2]FizzWhile() 0]종료 \n입력> ");
            int input=s.nextInt();
            FizzBuzz Fb= new FizzBuzz();
        if(input==1)
        {
            Fb.FizzFor();
        }
        else if(input==2)
        {
            Fb.FizzWhile();
        }
        else if(input ==0)
        {
            System.out.println("이용해주셔서 감사합니다.");
            break; // 0 을입력하면 종료
        }
        else{
            System.out.println("잘못된 값을 입력하셨습니다. 다시 입력하세요");
        }
        
        }//close while()
    }
}

(실행 결과)

원하시는 숫자를 선택하세요.
 1]FizzFor() 2]FizzWhile() 0]종료
입력> 1
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz 원하시는 숫자를 선택하세요.
 1]FizzFor() 2]FizzWhile() 0]종료
입력> 2
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz 원하시는 숫자를 선택하세요.
 1]FizzFor() 2]FizzWhile() 0]종료
입력> 5
잘못된 값을 입력하셨습니다. 다시 입력하세요
원하시는 숫자를 선택하세요.
 1]FizzFor() 2]FizzWhile() 0]종료
입력> 0
이용해주셔서 감사합니다.


출처 : [위키백과] https://en.wikipedia.org/wiki/Fizz_buzz




배열을 이용한 문자열 거꾸로 출력하기


문자열을 거꾸로 반환하는 클래스와 메소드가 있지만, 직접 코드로 구현 해 봤습니다.



import java.util.Scanner;

public class Reverse {
          void reverse(){ // 문자열을 입력받아서 거꾸로 출력하는 메소드
              Scanner s=new Scanner(System.in);
              System.out.println("문자를 입력하세요.");
              String input=s.nextLine();
              
              int len = input.length(); // 입력한 문자열의 길이를 저장하는 len 변수
              char[] change=new char[len]; // 한글자씩 담을 char형 배열 선언 - 문자열의 길이만큼
                        
              for(int i=0; i<len; i++){
              change[i]=input.charAt(i); // 문자열을 한글자씩 담는다.
              }
                        
              for(int i=len-1; i>=0; i--) // 배열의 길이-1만큼해야 가장 끝 방부터 시작한다.
              {
              System.out.print(change[i]); // 맨 끝 방부터 0번방까지 출력
              }
                   
          }
     
     public static void main(String[] args) {
          Reverse rev = new Reverse();
          rev.reverse(); // 메소드 호출
          
     }
}

(실행 결과)

문자를 입력하세요.
Hava A Nice Day!!
!!yaD eciN A avaH


정리

- input.charAt(i) : input문자열의 i번째 문자를 반환

- input.length() : input문자열의 길이를 반환

  추가적으로 .length는 배열의 길이 반환




반복문을 이용한 피보나치 수열 구하기


피보나치 수열 이란?

 피보나치 수는 0과 1로 시작하며, 다음 피보나치 수는 바로 앞의 두 피보나치 수의 합이 된다. 



- 입력받은 수 만큼 피보나치 수열 구하기


import java.util.Scanner;
public class Pibo {
          Scanner s = new Scanner(System.in);
          System.out.print("정수 입력 : ");
          int j=s.nextInt();
          
          int num1,num2,sum;
          num1=0; // 첫번째와 두번째 값이 1이어야 하므로 초기값을 0과
          num2=1; // 1로 준다
          sum=1; // 첫번째 1은 그냥 초기값으로 설정
          
          for(int i=0; i<j; i++)
          {
              System.out.print(sum+" ");
              sum=num1+num2; // 두 값을 더한 후
              num1=num2;
              num2=sum; // 두번째 연산자에 더한 값을 넣어준다.
          }

     }
}

(실행 결과)

정수 입력 : 10

1 1 2 3 5 8 13 21 34 55


출처 : [위키백과]

https://ko.wikipedia.org/wiki/%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98_%EC%88%98




반복문과 조건문을 이용한 소수 구하기


- 1~100 범위의 소수 구하기


  int count=0;

          for(int i=2; i<=100; i++) // 1은 소수가 아니므로 2부터 시작
          {
              for(int j=2; j<=i; j++)
              {
                   if(i%j ==0) 
                   {
                        count ++;
                   }    
              }
              
              // 소수는 1과 자기자신으로만 나눠지므로 자기자신으로 한번만 나눠질때 소수
              if(count==1)
              {
                   System.out.print(i+" ");
              }
              count=0;
          }

(실행 결과)

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97





반복문을 이용한 별찍기



- 순차적으로 찍기


          int count=0;

          for(int i=1; i<6; i++){
                   for(int j=0; j<i; j++)
                   {
                   System.out.print("*");
                   }
                   
                   System.out.println("");

          }

(실행 결과)

*
**
***
****

*****


- 거꾸로 찍기

          for(int i=5; i>0; i--)
          {
              for(int j=1; j<=i; j++)
              {
                   System.out.print("*");
              }
          System.out.println("");

          }


(실행 결과)

*****
****
***
**
*


- 삼각형 모양으로 찍기


for(int i=0; i<5; i++){
              int x=4;
              for(int j=0; j<x-i; j++){ // 별 앞에 공백을 찍는 for문
                   System.out.print(" ");
              }
              for(int k=0; k<=i; k++){ // 별을 찍는 for문
                   if(k == 0){ // *을 홀수개 찍기위해서 하나와
                        System.out.print("*");
              }
                  else{ // 두개를 나눠서 찍는다.
                   System.out.print("**");
                  }
              }// close for()
                   System.out.println("");

              }//close for()

(실행 결과)

    *
   ***
  *****
 *******
*********





반복문을 이용한 구구단



- for문을 이용한 구구단 출력


          int i,j;

          for(i=2; i<10; i++)
          {
              for(j=1; j<10; j++){
                   System.out.print(i+"*"+j+"="+i*j+",");
              }
          System.out.println(" "); // 단을 구분하기 위한 개행

          }

(실행 결과)

2*1=2,2*2=4,2*3=6,2*4=8,2*5=10,2*6=12,2*7=14,2*8=16,2*9=18,
3*1=3,3*2=6,3*3=9,3*4=12,3*5=15,3*6=18,3*7=21,3*8=24,3*9=27,
4*1=4,4*2=8,4*3=12,4*4=16,4*5=20,4*6=24,4*7=28,4*8=32,4*9=36,
5*1=5,5*2=10,5*3=15,5*4=20,5*5=25,5*6=30,5*7=35,5*8=40,5*9=45,
6*1=6,6*2=12,6*3=18,6*4=24,6*5=30,6*6=36,6*7=42,6*8=48,6*9=54,
7*1=7,7*2=14,7*3=21,7*4=28,7*5=35,7*6=42,7*7=49,7*8=56,7*9=63,
8*1=8,8*2=16,8*3=24,8*4=32,8*5=40,8*6=48,8*7=56,8*8=64,8*9=72,
9*1=9,9*2=18,9*3=27,9*4=36,9*5=45,9*6=54,9*7=63,9*8=72,9*9=81,


- while문을 이용한 구구단 출력


          int i,j;
          i=1; j=1;
          while(i<10)
          {
              while(j<10){
                   System.out.print(i+"*"+j+"="+i*j+",");
                   j++;
              }
              System.out.println();
              j=1; // 초기화
              i++;
          }


- 원하는 단을 입력받아서 해당하는 단만 출력


import java.util.Scanner;
public class gugu
{
     

          Scanner s= new Scanner(System.in);
          // 입력을 받기 위한 Scanner클래스
          while(true){ // break를 만나기 전까지 계속 반복
              System.out.print("구구단을 출력하는 프로그램입니다.\n출력할 단을 입력하세요 (종료하시려면 0 입력) : ");
              int input=s.nextInt(); // 정수를 입력받아 input 변수에 저장
                   
              if(input==0){ // 0이 입력되면 종료
                   System.out.println("이용해주셔서 감사합니다.");
                   break;
              }
                   
              for(int i=1; i<10; i++){
                   System.out.println(input+"*"+i+"="+input*i);
              }//close for()
              System.out.println(); // 단을 출력한 뒤 한줄개행
          }//close while()
     }
}

(실행 결과)

구구단을 출력하는 프로그램입니다.
출력할 단을 입력하세요 (종료하시려면 0 입력) : 5
5*1=5
5*2=10
5*3=15
5*4=20
5*5=25
5*6=30
5*7=35
5*8=40
5*9=45
구구단을 출력하는 프로그램입니다.
출력할 단을 입력하세요 (종료하시려면 0 입력) : 0

이용해주셔서 감사합니다.





이클립스 폰트 변경



이클립스 폰트 변경하는 방법입니다.


아이클립스 상단의 Window 탭에서 Preferences를 클릭합니다.



가장 상단에 General - Appearance - Color and Fonts를 클릭하고

Debug에서 Console font를 변경할 수 있고, Basic에서 Text Font를 변경하면 

텍스트 에디터(코딩하는 화면) 폰트를 변경할 수 있습니다.








'언어 > Tool' 카테고리의 다른 글

(윈도우)프로그램 강제로 종료하는 방법  (0) 2021.11.06
IntelliJ 설치  (0) 2020.03.26
[이클립스] 개발환경 구축(설치)  (4) 2017.04.19

자바 개발환경 구축(설치)


 자바를 개발하는 환경중에 제가 구축한 환경은 이클립스 입니다. 


 아래 오라클 홈페이지에서  Java SE Development Kit 8u131설치합니다. 

 JDK를 먼저 설치해야 자바 가상머신이 설치되고, 정상적으로 이클립스를 설치 및 이용하실 수 있습니다.


http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


 사이트에 들어가서 라이센스 동의를 하고 운영체제에 맞는 JDK를 다운받습니다. 

저는 윈도우 64비트 버전을 설치했습니다.


파일을 받으셨으면 관리자 권한으로 실행해 줍니다. 설치 경로를 지정하는 것 외에는 디폴트로 설치 했습니다.

 아래와 같은 그림에서 change버튼을 눌러서 경로를 바꿔줍니다.


저는 디폴트경로에서 C드라이브를 D드라이브로 바꿔줬습니다.


jre경로 역시 같은 경로로 변경하고 설치했습니다.


위에서 자바 가상머신을 설치 했습니다. 이번에는 이클립스를 설치하는 과정입니다. 

저는 Java EE Developers를 설치했습니다.


 아래 그림과 같이 Install과 Lanuch를 눌러 설치를 진행합니다.







 디폴트로 설치를 진행하고 나면 바탕화면에 Eclipse Jee Neon 이라는 아이콘이 생깁니다. 


 이클립스를 처음 실행하면 프로젝트 경로를 지정하는 창이 뜹니다. 저는 jdk와 jre를 설치한 같은 폴더에 Project라고 지정해서 만들었습니다.


 이클립스를 실행하면 다음과 같은 환영 창이 뜨는데 우측 하단에 항상 보겠다는 체크박스를 체크 해제하고 왼쪽 상단에서 꺼줍니다. 

 체크 해제를 하지않으면 킬때마다 귀찮은 환영인사를 받아야합니다.


 설치가 끝났으니 기본 프로젝트와 패키지 클래스를 만들어보겠습니다.


 왼쪽 상단의 File탭에 New-Project를 선택합니다.

위에서 Project를 누르면 다음과 같은 창이 뜨는데 Java Project를 선택합니다.


 프로젝트 이름을 지정하는 창입니다. 저는 Java_Study로 지정했습니다.


 이번에는 위에서 만든 프로젝트에 패키지를 만들어 보겠습니다. 방법은 유사합니다.


저는 패키지 이름을 com.base로 지정했습니다.


 마지막으로 실질적인 코드가 들어가는 클래스를 만들어보겠습니다. 클래스역시 방법은 유사합니다.


 클래스이름을 Test로 만들었습니다. 아래 빨간 박스를 체크해주시면 자동으로 main 메소드를 구현해줍니다.


 아래와 같이 테스트 코드를 작성해서 출력해 봤습니다. 이클립스에서는 F11버튼이나 초록색 Run 버튼을 누르면 소스코드가 실행이 됩니다.




'언어 > Tool' 카테고리의 다른 글

(윈도우)프로그램 강제로 종료하는 방법  (0) 2021.11.06
IntelliJ 설치  (0) 2020.03.26
[이클립스] 폰트 변경  (2) 2017.04.19

+ Recent posts