티스토리 뷰

	void modi(int no) 
	{
		for(int i=0; i<bank.allmember.length; i++) 
		{
			member mb=bank.allmember[i];
			
			if(mb==null) 
			{
				break;
			}
			if(mb.memno == no) 
			{
				System.out.println("----------사원정보----------");
				System.out.println("사원 번호 : "+mb.memno); //n주소값을 가진 mb의 memno
				System.out.println("사원 이름 : "+mb.name); //n주소값을 가진 mb의 name
				System.out.println("연차 갯수 : "+mb.holiday); //n의 주소값을 가진 mb의 holiday
				System.out.println("직원 나이 : "+mb.age); //n 주소값을 가진 mb의 age
				System.out.println("직원 부서 : "+mb.position); //n 주소값을 가진 mb의 position
				System.out.println("-------------------------");
			 }
				System.out.println("-------------------------");
				System.out.println("수정하실 정보를 입력해주세요."); //n주소값을 가진 mb의 memno
				System.out.println("1. 이름"); //n주소값을 가진 mb의 name
				System.out.println("2. 연차수"); //n의 주소값을 가진 mb의 holiday
				System.out.println("3. 직원부서"); //n 주소값을 가진 mb의 age
				
				Scanner input=new Scanner(System.in);
				Scanner input2=new Scanner(System.in);
				int choice=input.nextInt(); //choice를 입력 받는다
				
				switch(choice) //입력받은 choice의 값에 따라 다르게 실행
				{
					case 1:
						System.out.println("이름을 입력해주세요!");
						mb.name=input2.nextLine();
						break;
					case 2:
						System.out.println("사용된 연차의 갯수를 입력해주세요!");
						int minus=input.nextInt();
						mb.holiday=mb.holiday-minus;
						break;
					case 3:
						System.out.println("부서이름을 입력해주세요!");
						mb.position=input2.nextLine();
						break;
					default:
						System.out.println("잘못입력하였습니다.");
				} //스위치 끝
		} //for 끝
	}

 

위의 코드는 mb.memno가 no의 값과 같으면 if문 밑으로 swirch 문 까지 실행하여 정보를 수정하는 목적으로 작성되었다.

하지만 코드에 한가지의 오류가 있다.

if(mb.memno==no) 구문을 들여다보면 if문 마지막에 중괄호가 닫혀 있는 것을 볼 수 있다.

위의 코드는 값이 같을 경우 실행하는 것을 목표로 하기 떄문에 if문을 switch문까지 실행해야하기 때문에 switch문이 끝난 후 중괄호를 닫아주어야한다.

 

void modi(int no) 
	{
		for(int i=0; i<bank.allmember.length; i++) 
		{
			member mb=bank.allmember[i];
			
			if(mb==null) 
			{
				break;
			}
			if(mb.memno == no) 
			{
				System.out.println("----------사원정보----------");
				System.out.println("사원 번호 : "+mb.memno); //n주소값을 가진 mb의 memno
				System.out.println("사원 이름 : "+mb.name); //n주소값을 가진 mb의 name
				System.out.println("연차 갯수 : "+mb.holiday); //n의 주소값을 가진 mb의 holiday
				System.out.println("직원 나이 : "+mb.age); //n 주소값을 가진 mb의 age
				System.out.println("직원 부서 : "+mb.position); //n 주소값을 가진 mb의 position
				System.out.println("-------------------------");
			 
				System.out.println("-------------------------");
				System.out.println("수정하실 정보를 입력해주세요."); //n주소값을 가진 mb의 memno
				System.out.println("1. 이름"); //n주소값을 가진 mb의 name
				System.out.println("2. 연차수"); //n의 주소값을 가진 mb의 holiday
				System.out.println("3. 직원부서"); //n 주소값을 가진 mb의 age
				
				Scanner input=new Scanner(System.in);
				Scanner input2=new Scanner(System.in);
				int choice=input.nextInt(); //choice를 입력 받는다
				
				switch(choice) //입력받은 choice의 값에 따라 다르게 실행
				{
					case 1:
						System.out.println("이름을 입력해주세요!");
						mb.name=input2.nextLine();
						break;
					case 2:
						System.out.println("사용된 연차의 갯수를 입력해주세요!");
						int minus=input.nextInt();
						mb.holiday=mb.holiday-minus;
						break;
					case 3:
						System.out.println("부서이름을 입력해주세요!");
						mb.position=input2.nextLine();
						break;
					default:
						System.out.println("잘못입력하였습니다.");
				} //스위치 끝
			} //if 끝
		} //for 끝
	}
}

 

'코딩 > 오류 노트' 카테고리의 다른 글

생성자 호출 오류  (0) 2023.10.23
클래스명 중복  (0) 2023.10.20
출력문 지시자 오류(%d, %n, %f, %c, %s, %b)  (0) 2023.10.17
함수명 일치  (0) 2023.10.17
명령어 위치에 따른 오류  (0) 2023.10.13
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday