<cmd명령프롬프트에서 컴파일>
cd\(change directory) 현재 디렉터리 이름을 보여주거나 바꿈
dir(directory) 디렉터리에 있는 파일과 하위 디렉터리 목록을 보여줌
help 치면 설명이 나옴
cd\ => dir => cd eclipse-workspace =>dir => cd HellowTest => cd src => dir => javac Hellow.java
=> dir => java Hellow.java / java Hellow => 수고했어요 (내용)출력
\ - 루트폴드
public class LoginTest { }
public 접근제한자 부분. 아무나 들어와도 된다는 뜻이다.
static void main(String[] args) { }
static 점접 함수 라는 뜻으로 클래스에서 사용하는 자원이다.
void 이 안에 있는 것은 하나의 함수이지만 void는 아무것도 보내 줄 수 없다. 그 말인즉슨 실행을 하고 값을 돌려 줄 수 없다(return 안 됨)
String a = args[0] 문자열입력
args 아규먼츠는 외부에서 입력을 받음
int a = integer.parseInt(args[0]) 숫자(정수)입력
Scanner는 내부에서 입력을 받음
gate 함수 안에는 여러가지 기능을 가지고 있다.
.메소드(); - 다양한 기능 중에 그 기능만 실행을 한다. 각자의 기능이 있음
프로젝트 클래스 만드는 창에서 활성화가 안 되는 이름은 이미 만든 class 이름이거나 다른곳에서 사용하는 이름이다!
클래스를 많이 만들었을 때, 만들어진 클래스를 메인에서 불러다 쓸 거다.
Scanner sc = new Scanner(System.in);
그 때도 이런 식으로 만들어서 쓰는 거다.
끌어다 쓰는 것을 상속이라고 함 (나중에 배울 것)
문제를 던져주고 순서도를 그림 -> 순서도를 보고 코딩을 하는 것이 알고리즘 훈련
<상수 / for문 연습>
public class Main_8 {
final static int N = 15;
public static void main(String[] args) {
for(int i=-N; i<= N; i++) {
for(int j=-N; j<=N;j++) { //자바에서는 int를 넣어야 됨
if(i*i + j*j <= N*N){
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
final static int N = 15;
여기서 중요한 것은 상수를 만들어 주었고 대문자 이름을 갖고 있다는 점
<while문>
public class Program_10 {
public static void main(String[] args) {
int i = 1;
int sum = 0;
while(true) {
sum += i++;
if(i == 51) break;
}
System.out.println(sum);
}
}
1275 |
1~50까지 수를 더해라 51이 되면 break 중단한다.
<Scanner 객체와 equals 메소드>
import java.util.Scanner;
public class FlowTest22 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //자바의 기본 입출력
String anser = "서울";
String inString = "";
do{
System.out.println("대한민국 수도를 입력하세요");
System.out.print("수도이름 입력 : ");
inString = sc.next();
if(inString.equals(anser)) {
System.out.println("대한민국 수도는 " + anser + "입니다.");
break;
}
System.out.println("다시 입력해주세요");
}
while(true); //서울을 입력하지 않으면 무한루프
}
}
![]() |
단어가 맞는지 구별해주는 메소드는 equals를 사용한다.
(나중에 낱말 맞추기 게임 만들어도 될듯)
<break, break aaa; continue 구분>
public class FlowTest23 {
public static void main(String[] args) {
int num = 0;
char c = 'A';
aaa:while(true) {
while(true) {
num++;
System.out.print(c++ + " ");
if(num%5 == 0) {
break;
}
if(num == 26) {
break aaa;
}
}
System.out.println();
}
}
}
break; 가장 가까운 반복문을 빠져나감
break aaa; aaa: 레이블로 돌아간다. 가능한 거의 안 쓰는데 그냥 알아만 두고 가자
continue; 가장 가까운 반복문의 다음 실행문으로 이동한다.
![]() |
여기서 char c의 'A' 경우는 아스키코드(ASCII-CODE) 65에 해당한다. 그래서 c++을 했을 때 ABCDE로 올라가는 것임
<continue>
public class Test2 {
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<=10;i++) {
if(i==5) { continue; }
else {
sum += i;
System.out.print(i+" ");
}
}
System.out.println();
System.out.println(sum);
}
}
일반 continue만 했을 때
continue한 부분만 빼고 계산을 하니까 1~10까지 5만 빼고 다 더한 값이 50이 나온다.
1 2 3 4 6 7 8 9 10 50 |
<continue label지정>
public class Test2 {
public static void main(String[] args) {
int sum = 0;
aa:for(int i=1;i<=10;i++) {
if(i==5) { continue aa; }
else {
sum += i;
System.out.print(i+" ");
}
}
System.out.println();
System.out.println(sum);
}
}
for 앞에 aa로 라벨을 잡아두고, 컨티뉴 뒤에 aa를 해뒀을 때.. 끝나면 지정한 라벨로 이동한다.
1 2 3 4 6 7 8 9 10 50 |
public class Test3 {
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<=10;i++) {
if(i==5) break;
sum += i;
System.out.print(i+" ");
}
System.out.println();
System.out.println(sum);
}
}
1 2 3 4 10 |
break의 경우 빠져나가기 때문에 4까지만 계산하고 나간다.
while문에도 될까? 안 됨!
public class Program_13 {
public static void main(String[] args) {
int sum = 0;
int i = 1;
ss: while(i<=10) {
sum += i;
i++;
if(i == 5) continue ss;
}
System.out.print(sum);
}
}
'개발일지 > Java + Spring' 카테고리의 다른 글
[java] 배열의 설명과 예제 (0) | 2021.09.17 |
---|---|
[java] float, double 계산 후 소수점까지 출력 (0) | 2021.09.17 |
[java] 문자열 비교 메소드 3가지(대소문자 구별?) (0) | 2021.09.16 |
[java] 객체 설명과 Scanner 객체 불러와서 사용 (0) | 2021.09.16 |
[java] if-else문(로그인처리) (0) | 2021.09.15 |