1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | import java.util.Scanner; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Hello { public static void main(String [] args) //다시 { int go = 1; while(go==1) { int inputNum = (int)(Math.random()*6) +1; System.out.println(inputNum); if(inputNum==6) { System.out.println("반복을 종료합니다."); go = 0; } } String inputString = "비교하기"; if(inputString.equals("비교하기")) { System.out.println(".equals(\" \") 메서드로 문자열 비교 완료"); } if(inputString == "비교하기") { System.out.println("논리연산자로 문자열 비교 완료"); } int[] intArray; // 기본값은0 null값으로, stack메모리만 할당된다. //intArray[0] = 1; // 참조 변수는 초기화해야 객체가 생성된다. 변수 선언 = stack영역 메모리만 할당, 초기화 = heap영역에 객체 생성 //참조변수를 선언하고 초기화 없이 메서드에 접근하려고하면(변수를 사용하려고 하면) NullPointException 발생 String str; str = "초기화"; // 여기서 str의 객체 생성 String name1 = "문자열 리터럴로 변수에 문자열 저장"; String name2 = new String("new를 사용하여 직접 String 객체 생성"); //★★★★★ //동일한 문자열 리터럴로 String 객체 생성할 경우, 다른 두 변수가 같은 객체를 가리키므로 // 두 변수를 ==연산자를 통해 비교하면 true값이 나오나, //new를 이용하여 직접 String 객체를 생성할 경우엔 동일한 문자열을 저장해도 각각의 독립된 객체에 문자열이 저장되므로 // 두 객체 변수를 ==연산자를 통해 비교할시 false값을 반환한다. //String 클래스의 equals(" " or 문자열변수) 메서드는 이러한 각각의 객체에 저장된 문자열끼리 같은지 아닌지를 비교할 때 사용된다. //배열 String[] names = {"아빈", "아란", "희제"}; // 배열 선언과 동시에 원소 초기화 String[] names2; //names2 = {"아빈", "아란", "희제"}; 배열 선언 따로, 원소 초기화 따로는 안된다. //선언한 뒤에 따로 초기화하려면 names2 = new String[] {"아빈", "아란", "희제" }; //new 데이터타입[] {}를 통해 객체를 생성해주어야한다. //배열 아닌 경우엔 선언 따로, 문자열 리터럴로 초기화 따로하는 것이 가능한데 왜 배열에선 안될까 //String[] names = {" ", " ", " "}는 문자열 리터럴을 통해 "배열"객체가 생성됨 //일단은 그냥 문법으로 받아들이기 //new로 배열 객체를 생성하면 자동으로 기본값 초기화된다. int[] scores = new int[30]; //값형식인 int의 기본값인 0으로 초기화된다. String[] strings = new String[10]; // 참조형식인 String의 기본값인 null로 초기화된다. // 정수 30개가 들어갈 정수 배열을 메모리에 할당하고, 루프를 통해 각 배열에 0~100까지의 난수를 대입한 후 평균을 구해본다. int[] scores2 = new int[30]; int sum =0; for (int i =0; i < scores2.length; i++) //length는 읽기전용 필드 { scores2[i] = (int)(Math.random()*101) +1; // '수'와 관련된건 먼저 Math로 접근해보기 //1에서 100까지니까 101가지 경우의 수 sum += scores2[i]; if (i != scores2.length-1) { System.out.printf(scores2[i]+ "+"); } else { System.out.println(scores2[i]+ "=" + sum ); } } int scoreAverage = sum / scores2.length; System.out.println("점수 평균 = "+ sum + "/" + scores2.length + "=" + scoreAverage); //실행 결과 // 70+10+19+26+89+32+7+35+40+41+53+6+81+10+26+75+34+92+52+35+90+20+49+41+23+54+68+36+94+88=1396 // 점수 평균 = 1396/30=46 } } | cs |
Java/study