JAVA 제어문

종합응용과 수업을 마치며

수업소개

여러까지 오시느라 고생 많으셨습니다. 지금까지 배운 것을 총정리하는 시간을 가져보겠습니다. 

 

 

강의1

소스코드

public class AuthApp3 {

    public static void main(String[] args) {
		
		String[] users = {"egoing", "jinhuck", "youbin"};
		String inputId = args[0];
		
		boolean isLogined = false;
		for(int i=0; i<users.length; i++) {
			String currentId = users[i];
			if(currentId.equals(inputId)) {
				isLogined = true;
				break;
			}
		}
		System.out.println("Hi,");
		if(isLogined) {
			System.out.println("Master!!");
		} else {
			System.out.println("Who are you?");
		}

	}

}

 

 

 

강의2

소스코드

변경사항

public class AuthApp3 {

    public static void main(String[] args) {
		
		//String[] users = {"egoing", "jinhuck", "youbin"};
		String[][] users = {
				{"egoing", "1111"},
				{"jinhuck", "2222"},
				{"youbin", "3333"}
		};
		String inputId = args[0];
		String inputPass = args[1];
		
		boolean isLogined = false;
		for(int i=0; i<users.length; i++) {
			String[] current = users[i];
			if(
					current[0].equals(inputId) && 
					current[1].equals(inputPass)
			) {
				isLogined = true;
				break;
			}
		}
		System.out.println("Hi,");
		if(isLogined) {
			System.out.println("Master!!");
		} else {
			System.out.println("Who are you?");
		}

	}

}

 

 

 

지식지도

관련된 지식의 지도입니다. 지도를 참고해서 스스로 학습 경로를 탐험해보세요.

 

 

 

 

수업소식

아래 채널에 구독하시면 새로운 온/오프라인 수업이 있을 때 알려드립니다. 

 
 
 

댓글

댓글 본문
  1. 비밀번호가 틀렸을 경우도 작동되게끔 만들었고,
    아규먼트 넣는대신 자바 1수업에서 배웠던 JOptionPane.showInputDialog()
    를 사용해 input이 더 편리하게끔 만들어 봤습니다.

    import javax.swing.JOptionPane;

    public class AuthApp4 {

    public static void main(String[] args) {
    String[][] users = {
    {"Egoing", "1111"},
    {"Dom", "2222"},
    {"Sarah", "3333"},
    {"Hans", "4444"},
    {"Alex", "5555"}
    };

    String inputId = JOptionPane.showInputDialog("Enter your name");
    boolean rightId = false;
    boolean rightPass = false;
    for (int i=0; i < users.length; i++) {
    String[] current = users[i];
    if (current[0].equals(inputId)) {
    rightId = true;
    String inputPass = JOptionPane.showInputDialog("Enter you password");
    if (current[1].equals(inputPass)) {
    rightPass= true;
    break;
    }
    }
    }

    if (rightId) {
    if (rightPass) {
    System.out.println("Welcome, Master!");
    }else {
    System.out.println("Check your Password");
    }
    }else {
    System.out.println("Check your name");
    }

    }

    }
  2. 안광민
    public class booleanqp {

    public static void main(String[] args) {

    String[][] users = {
    {"kmight", "1111"},
    {"miyu", "2222"},
    {"mihee", "3333"}
    };

    String inputId = args[0];
    String inputPass = args[1];


    boolean isLogined = false;
    for(int i=0; i<users.length; i++) {
    String[] current = users[i];
    if(current[0].equals(inputId) &&
    current[1].equals(inputPass)) {
    isLogined = true;
    break;

    }
    }
    System.out.println("Hi");
    if(isLogined) {
    System.out.println("Master");
    } else {
    System.out.println("who are you?");
    }

    }
    }


    완료
  3. 뱅글이
    마지막 수업은 내일 아침 한번 더 보고 따라해봐야겠다. 아직 이해가 다 가지 않아서 혼자서는 작성이 어렵다.
  4. 준서
    fin.
  5. Itsyng
    2020.9.17 완료
  6. Gyeong Min Lee
    ㅁㅇㄹ
  7. 선대범
    너무 길지만 아이디는 맞고 패스워드가 다르면 Wrong Number가 나오게 해봣습니다.
    int isLogined = 0;
    for (int i = 0; i < users.length;i++) {
    String[] current = users[i];
    if (
    current[0].equals(inputID) &&
    current[1].equals(inputPass)
    ) {

    isLogined = 1;
    break;
    } else if (current[0].equals(inputID)){
    isLogined = 2;
    }
    // System.out.println(users[i]);
    }
    System.out.print("Hi, ");
    if (isLogined == 1) {
    System.out.println("Master");
    } else if(isLogined == 0){
    System.out.println("Who are you?");
    } else {
    System.out.println("Wrong Pass");
    }
    }
  8. 넘무
    아이디와 비밀번호가 모두 같을땐 "로그인 되었습니다"
    아이디는 같은데 비밀번호가 다를때 "비밀번호가 틀렸습니다"
    아이디가 다를때 "로그인 실패"

    이렇게 띄울려고 한참 30분간 만지작 만지작하다가
    선생님께서 말씀해주신대로 구글링을 해서 코드를 작성하여
    내가 원하던 프로그램을 만들었습니다!!

    제가 배운걸 공유하자면
    if( !current[1].equals(inputPass) ) {
    ~~
    }
    이렇게 느낌표를 붙여주면 current[1]과 inputPass의 값이 다를때 true가 됩니다
  9. 방동혁
    기본적으로 로그인이 되기 전 상태에서 로그인이 된 상태로 바뀌는 것을 생각하여 코드를 구성한 것입니다. for문 안에 isLogined변수를 처음 선언하게 되면 프로그램이 좀더 복잡해 질때 로그인 되지도 않은 사람을 로그 아웃 해야 하는 경우도 발생 할 수 있고, 변수를 추적할기 어려울 수도 있을 것 같아요. 이런 경우를 대비하여 순환문 바깥쪽에 기본값을 가진 변수를 미리 선언한 후 순환문과 조건문 안에서는 변수의 값 여기서는 로그인이 되었는지 아닌지 상태를 나태내는 값만 true, false를 바꿔가며 선언한 것입니다. 현재와 같은 문장에서 for문 안에 변수를 선언하면 for문을 벗어날 때 변수가 사라지기 때문에 if문 안에서 사용하는 변수는 선언된 적이 없는 변수가 됩니다. 하여 오류가 발생합니다. for문과 if문 모두에 사용하는 변수는 for문과 if문 밖 모두의 상위에 선언되어야 두곳 모두에서 사용할 수 있게 됩니다.
    대화보기
    • 코링
      boolean isLogined = false; 를 하는 이유는
      isLogined = false 즉, '로그인이 아직 되지 않았다.' 라는걸 의미하는거고,
      아이디와 비밀번호가 맞다면,
      isLogined = true 즉, '로그인이 되었다.'는걸 의미하는 거에요 !
      대화보기
      • yechubot
        왜 boolean isLogined = true; 가 아니구
        boolean isLogined = false; 로 선언을 해야하나요?

        + boolean isLogined = false; 로 선언을 하는 부분이 로그인 되기 전 상태이기 때문에 false로 선언을 하는 건가요?!
      • 안녕하세요!
        HTML기본강의를 마치고 자바프로그래밍언어를 새롭게 공부하고 있습니다. 저는 항상 다른분들 댓글 정리되어 있는걸로 되게 많이 정리하고 어렴풋이 눈치껏 알았던 것도 정확하게 짚고 넘어갈 수 있었습니다. 그 덕분에 AuthApp을 만드는데 좀 더 욕심을 가져서 input dialog를 넣거나 더 나아가 패스워드를 암호화시키는 것까지 구글링을 통해서 배울 수 있었습니다.

        그리고 오늘 제가 이 강의를 들으면서 한번에 이해가 가지않아서 강의를 여러번 듣고 구글링도 하면서 또 궁금증이 해결되고 새로운걸 배우게되었습니다. 그래서 이번에는 제 스스로 정리한 것을 같이 공유하고자 합니다. (아직도 솔직히 boolean isLogined = false; 플래그 변수를 왜 두는지는 정확히 이해하지못했습니다ㅎ)

        제가 이해가지 않았던 부분은 String[] current= user[i]; 이었습니다. String[] current= user[i]; 에서 user[i]는 종합응용1의 예시(String currentid=user[i]처럼 값을 나타내는 게 아니라 하나의 배열을 의미하기 때문에 String 뒤에 배열 []를 해줘야합니다. 예를들어, user[0]일 때, {"egoing","1111"}를 나타내어서 current[0]은 "egoing"을 의미하고, current[1]은 "1111"을 나타냅니다. 또 한번더 예를 들자면 user[1]일 때, {"jinhuck","2222")를 나타내어서 current[0]은 "jinhuck"을 의미하고, current[2]는 "2222"를 나타냅니다.

        혹시나 틀린부분이나 boolean isLogined = false; 이부분에 대해서 아시는분은 댓글부탁드릴게요!
        그리고 항상 양질의 강의 감사합니다!
      • natethru
        2020.03.24

        강의를 끝까지 듣고, 자바1 수업에서 들었던 import javax.swing.JOptionPane 의 다이얼로그들을 활용해 아이디와 비밀번호를 직접 입력하고, 둘다 맞게 입력했을 경우 로그인 성공 메시지를, 실패했을 경우 실패 메시지를 표시하는 프로그램을 만들어 보았습니다.

        난생 처음 도전해보는 코딩이지만 항상 좋은 설명과 격려로 힘내면서 공부하고 있습니다. 감사합니다.
      • 완료
      • 뉸찡
        2020.03.06
        완료! 감사합니다 ㅠㅠ
        마지막 부분은 어려워서 복습하겠습니당
      • 감자
        2020.03.03 수강완료
      • 소금설탕
        고맙습니다.
      • 임지수
        2020.01.31 완료
      • 라또마니
        감사합니다.
      • 코린이
        수강 완료했습니다. 감사합니다-!!
      • 이기호
        Java가 어렵게 느껴졌는데 여기서 강의 듣고 다시 열정이 생겼습니다. 감사합니다!
      • 쑤우
        수강완료. 감사합니다~
      • 허공
        감사합니다!
      • 김민호
        끝 첫번째
      • 박용훈
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기