Java 배열, 반복, 랜덤, 탐색 등

/** 
 * Created by cryne on 2016-03-09. 
 */ 
 
import java.util.Random; 
import java.util.Scanner; 
 
public class Hello { 
    public static void main(String[] args) { 
        Random rand = new Random(); 
        Scanner key = new Scanner(System.in); 
 
        int ary[] = new int[10]; 
 
        for(int i = 0; i < ary.length; i++) 
        { 
            ary[i] = (rand.nextInt(100)) + 1; 
        } 
        System.out.print("배열 안의 수: "); 
 
        for(int i = 0; i < ary.length; i++) 
        { 
            System.out.print(ary[i] + " "); 
        } 
        System.out.println(""); 
 
        int maximum = ary[0]; 
        for(int i = 1; i < ary.length; i++) 
        { 
            if(ary[i] > maximum) 
                maximum = ary[i]; 
        } 
        System.out.println("최대값 : " + maximum); 
 
        System.out.print("탐색할 값을 입력하세요 : "); 
        int input = key.nextInt(); 
 
        int index = -1; 
 
        for(int i = 0; i < ary.length; i++) 
        { 
            if(ary[i] == input){ 
                index = i; 
                break; 
            } 
        } 
        if(index == -1) 
        { 
            System.out.println("해당 값은 배열에 없습니다."); 
        } 
        else 
        { 
            System.out.println(input + "값은 " + index + "번 위치에 있습니다."); 
        } 
    } 
} 
 
 

 

Java 배열을 이용하여 성적 입력 받은 후 평균 성적 구하기

import java.util.Scanner; 
 
public class Hello { 
    public static void main(String[] args) { 
        final int STUDENTS = 5; 
        int total = 0; 
        Scanner scan = new Scanner(System.in); 
 
        int[]scores = new int [STUDENTS]; 
 
        for (int i = 0; i < scores.length; i++) 
        { 
            System.out.print("성적을 입력하시오: "); 
            scores[i] = scan.nextInt(); 
        } 
 
        for (int i = 0; i < scores.length; i++) 
            total += scores[i]; 
 
        System.out.println("평균 성적은" + total / STUDENTS + "입니다."); 
    } 
}

 

Java double형 배열

int 뿐만아니라 double형 배열도 선언하고 사용할 수 있습니다.

public class Hello { 
    public static void main(String[] args) { 
        double[] array = new double[11]; 
        double y = 10.0; 
 
        for(int i = 0; i < array.length; i++) 
        { 
            array[i] = i/y; 
            System.out.println("arr[" + i +"] = " + array[i]); 
        } 
}

 

Java 반복문을 이용하여 베팅 후 맞추기

import java.util.Random; 
import java.util.Scanner; 
 
public class Hello { 
    public static void main(String[] args) { 
        Scanner key = new Scanner(System.in); 
        Random random = new Random(); 
 
        int money = 100; 
        do { 
            System.out.println("[ 1 ] [ 2 ] [ 3 ]"); 
            System.out.print("어디에 구슬이 있을까요. [1~3] : "); 
            int input = key.nextInt(); 
 
            System.out.print("얼마를 배팅하시겠습니까 [가진돈 : " + money + "] : "); 
            int betting = key.nextInt(); 
 
            int rand = random.nextInt(3); 
            rand++; 
 
            for(int i = 1; i <= 3; i++) { 
                String flag; 
                if (i == rand) 
                    flag = "*"; 
                else 
                    flag = " "; 
                System.out.print("[ " + flag + " ] "); 
            } 
            System.out.print("
"); 
 
            if(rand == input){ 
                money += (betting * 2); 
                System.out.print("맞췄습니다."); 
            } 
            else { 
                money -= betting; 
                System.out.print("틀렸습니다."); 
            } 
            System.out.println(" 가진 돈이 " + money + "가 됩니다."); 
        }while(money>=0); 
    } 
}

 

Java 반복문을 이용한 구구단 예제

import java.util.Random; 
import java.util.Scanner; 
 
public class Hello { 
    public static void main(String[] args) { 
        Scanner key = new Scanner(System.in); 
        Random random = new Random(); 
 
        int x; 
        int y; 
        boolean flag = true; 
        int i; 
        int calculate; 
 
        String input; 
 
        do 
        { 
            int count = 0; 
            int correct = 0; 
            for (i = 1; i <= 3; i++) 
            { 
                x = random.nextInt(9); 
                x++; 
                y = random.nextInt(9); 
                y++; 
 
                System.out.print(x + " * " + y + " : "); 
                calculate = key.nextInt(); 
 
                if(calculate == (x*y)) 
                    correct++; 
 
                count++; 
            } 
            System.out.println("총 " + count + "문제 중 " + correct + "문제를 맞혔습니다."); 
            System.out.println("계속 하시겠습니까? y/n :"); 
 
            input = key.next(); 
            if(input.equals("n")||input.equals("N")) 
                flag = false; //break; 
 
        }while(flag); //true로 둔 후 바로 위의 if에서 break로 대체 가능 
    } 
}

 

SQL 기타비교연산자 Null

  • NULL연산자에는 IS NULL 연산자와 IS NOT NULL 연산자가 있습니다.
  • NULL 연산자는 NULL 여부를 검사합니다.
  • NULL값은 어떤 값과도 동일 여부를 판별할 수 없으므로 동등 연산자 ( = )를 사용하여 조회할 수 없습니다.

SQL 기타비교연산자 Like

LIKE연산자를 사용하면 검색할 값을 정확하게 알지 못하는 경우 문자 패턴이 일치하는 행을 표시할 수 있습니다.

기호 설명
% 0개 이상의 일련의 문자를 나타냅니다.
_ 문자 하나를 나타냅니다.

 

와일드문자를 사용할 수 있으나, like를 제외한 나머지는 와일드 문자를 사용할 수 없습니다.

 

Java 생성자 오버로딩과 this

public class tempClass { 
    private int x, y; 
    private int width, height; 
     
    tempClass() { 
        this(0,0,1,1); 
    } 
     
    tempClass(int width, int height) { 
        this(0,0,width,height); 
    } 
     
    tempClass(int x, int y, int width, int height) { 
        this.x = x; 
        this.y = y; 
        this.width = width; 
        this.height = height; 
    } 
}

여기서 this(0,0,1,1)과

this.x, this.y는 현재 객체, 즉 tempClass(int x ….)와 private int x, y를 뜻한다.

고통의 마을 레쉬폰 Updated

Frame.java

CustomButton selected = null; 
 
private void insertBtnActionPerformed(java.awt.event.ActionEvent evt) {                                           
    // TODO add your handling code here: 
    CustomButton btn = new CustomButton(new Student(tf1.getText(), tf2.getText())); 
    btn.addActionListener((ActionEvent e) -> { 
        selected = (CustomButton) e.getSource(); 
        tf1.setText(selected.getStd().getName()); 
        tf2.setText(selected.getStd().getNum()); 
    }); 
     
    panel.add(btn); 
    panel.updateUI(); 
}                                          
 
private void deleteBtnActionPerformed(java.awt.event.ActionEvent evt) {                                           
    // TODO add your handling code here: 
    if(selected == null) { 
        return; 
    } 
    tf1.setText(""); 
    tf2.setText(""); 
    panel.remove(selected); 
    selected = null; 
     
    panel.updateUI(); 
}                                          
 
private void sortBtnActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here: 
    Component[] cpt = panel.getComponents(); 
    int size = cpt.length; 
    CustomButton[] btns = new CustomButton[size]; 
    for(int i = 0; i < size; i++) { 
        btns[i] = (CustomButton) cpt[i]; 
    } 
     
    int max; 
    Student maxstd, istd; 
    for(int i = 0; i < size-1; i++) { 
        max = i; 
        for(int j = i+1; j < size; j++) { 
            if(btns[max].compareTo(btns[j]) < 0) { 
                max = j; 
            } 
        } 
         
        maxstd = btns[max].getStd(); 
        istd = btns[i].getStd(); 
         
        btns[i].setStd(maxstd); 
        btns[max].setStd(istd); 
         
    } 
     
    for(int i = 0; i < size; i++) { 
        btns[i].refreshName(); 
    } 
}                                        
 
private void modifyButtonActionPerformed(java.awt.event.ActionEvent evt) {                                              
    // TODO add your handling code here: 
    if(selected == null) { 
        return; 
    } 
    selected.setStd(new Student(tf1.getText(),tf2.getText())); 
    selected.refreshName(); 
     
    panel.updateUI(); 
}

Student.java

/* 
 * To change this license header, choose License Headers in Project Properties. 
 * To change this template file, choose Tools | Templates 
 * and open the template in the editor. 
 */ 
package kr.razberry; 
 
/** 
 * 
 * @author capta 
 */ 
public class Student { 
     
    private String name; 
     
    private String num; 
 
    public Student(String name, String num) { 
        this.name = name; 
        this.num = num; 
    } 
     
     
 
    /** 
     * Get the value of num 
     * 
     * @return the value of num 
     */ 
    public String getNum() { 
        return num; 
    } 
 
    /** 
     * Set the value of num 
     * 
     * @param num new value of num 
     */ 
    public void setNum(String num) { 
        this.num = num; 
    } 
 
 
    /** 
     * Get the value of name 
     * 
     * @return the value of name 
     */ 
    public String getName() { 
        return name; 
    } 
 
    /** 
     * Set the value of name 
     * 
     * @param name new value of name 
     */ 
    public void setName(String name) { 
        this.name = name; 
    } 
     
    public String getText() { 
        return name + "/" + num; 
    } 
 
} 

CustomButton.java

/* 
 * To change this license header, choose License Headers in Project Properties. 
 * To change this template file, choose Tools | Templates 
 * and open the template in the editor. 
 */ 
package kr.razberry; 
 
import javax.swing.JButton; 
 
/** 
 * 
 * @author capta 
 */ 
public class CustomButton extends JButton { 
    Student std; 
 
    public CustomButton(Student _std) { 
        super(_std.getText()); 
        std = _std; 
    } 
 
    public Student getStd() { 
        return std; 
    } 
 
    public void setStd(Student std) { 
        this.std = std; 
    } 
 
    int compareTo(CustomButton btn) { 
        int result = std.getName().compareTo(btn.getStd().getName()); 
        if(result == 0) { 
            return std.getNum().compareTo(btn.getStd().getNum()); 
        } 
        return result; 
    } 
     
    public void refreshName() { 
        this.setText(std.getText()); 
    } 
     
}