2022. 7. 18. 09:03ㆍ2층 - 앞지름과 되새김의 장/문제의 고찰
퀴즈들을 복습하면서 갑자기 생각났다.
System.exit();와 return;의 차이는 무엇일까? 일단 둘 다 프로그램이 실행되고 있으면
종료시키는 건 같다.
package loop_while;
import java.util.Scanner;
public class Quiz4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String saveId, savePass, checkId, checkPass;
saveId = savePass = checkId = checkPass = "";
while (true) {
System.out.println("1. 회원가입");
System.out.println("2. 로그인");
System.out.println("3. 나가기");
System.out.print(">>> ");
String select = sc.next();
switch (select) {
case "1":
System.out.print("저장할 아이디 입력 : "); saveId = sc.next();
System.out.print("저장할 비밀번호 입력 : "); savePass = sc.next();
break;
case "2":
System.out.print("아이디 입력 : "); checkId = sc.next();
System.out.print("비밀번호 입력 : ");checkPass = sc.next();
if(checkId.equals(saveId) && checkPass.equals(savePass)) {
System.out.println("인증 성공 !!!");
}else {
System.out.println("인증 실패 !!!");
}
break;
case "3":
//System.exit(0); ??
System.out.println("프로그램 종료합니다.");
return; //??
default: System.out.println("메뉴를 입력 후 다시 입력하세요.");
}
}
}
}
1. 차이점??
출처 - https://altongmon.tistory.com/205
JAVA 자바 System 클래스 프로그램 종료 exit() /// 가비지 컬렉터 gc()
System 클래스 자바 프로그램은 JVM 위에서 실행됩니다. 운영체제의 모든 기능을 자바 코드로 직접 접근하기란 어렵습니다. java.lang 패키지에 속하는 System 클래스를 이용하면 운영체제의 일부 기
altongmon.tistory.com
System.exit();는 종료가 가능하나 그 기능에 '강제' 가 있다.
우리가 어떤 기계로 일을 진행하다가 어떤 비상상황이 발생했거나 컴퓨터가 갑자기 멈춰서
강제로 종료할 때, JAVA에서는 그런 기능을 System.exit();으로 이용한다 는 것.
괄호 안에 int의 변수값을 넣어주게 되는데 그게 0 일 경우는 정상적인 종료.
변수값이 그 어떤 변수의 해당하는 값이면 비정상적인 종료 를 뜻한다.
return은 일반 함수 속에서 return 문을 사용하면 그 함수만 종료 되지만,
main() 함수 속의 return 문은 프로그램 전체를 중지시킨다.
2. 결론
둘 다 종료라는 의미는 같다.
단, exit();에는 강제성이 존재하여 모든 함수를 종료시키는 것,
return은 부분적인 함수만 정상종료 시킨다는 것.(main함수는 그 전체를 종료.)
이게 얻은 결론이다.
'2층 - 앞지름과 되새김의 장 > 문제의 고찰' 카테고리의 다른 글
JAVA - 객체지향언어 생성자(2022-07-26) (0) | 2022.07.26 |
---|---|
JAVA - 객체지향언어 클래스, 인스턴스, 메소드(2022-07-26) (0) | 2022.07.26 |
JAVA - HashMap에서의 put()과 replace()에 대한 고찰(2022-07-26) (0) | 2022.07.26 |
Interator와 for,while은 어떤 차이인가? (0) | 2022.07.26 |
JAVA - 인텔리제이 글씨 깨짐현상에 대한 고찰(2022-06-27) (0) | 2022.06.27 |