Code
import java.util.Scanner;
public class InfiniteLoop {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int total =0, user_win = 0, cpu_win = 0;
while(true) {
total++;
int dice = ((int)(Math.random()*6+1));
int dice2 = ((int)(Math.random()*6+1));
int sum = dice + dice2;
int value = sum%2;
System.out.print("홀짝을 예상하세요. 홀 : 1 / 짝 : 0 ");
int even = s.nextInt();
System.out.println("dice : " + dice + " / dice 2 : " + dice2 + " / sum : " + sum );
boolean win = value == even;
if (win) {
System.out.println("사용자 승");
user_win++;
}
else {
System.out.println("컴퓨터 승");
cpu_win++;
}
System.out.print("다시 하시겠습니까? (1:예 / 0:아니오) : ");
int sel = s.nextInt();
if(sel == 0) {
break;
}
}
System.out.println("사용자 승률 : " + user_win/(double)total*100 + "%");
s.close();
}
}
public class MethodEx {
public static void main(String[] args) {
// 메서드 호출
int n = add(50, 30);
System.out.println(n);
System.out.println(add(100,50));
System.out.println(rating(95));
System.out.println(getPI());
System.out.println(getArea(5));
ageRating(25);
showMenu();
}
// 메서드 정의
// 출력값의 타입이 정수(int)타입이고,
// 2개의 int타입을 입력받는 메서드
// 입출력이 모두 있는 메서드
// int 값을 내보내고 있기 때문에
// add 라는 메서드명 앞에도 int가 들어가야 함
public static int add(int a, int b) {
// 위에서 가져온 값 계산 한 후 result에 저장
int result = a + b;
// result 값을 위로 돌려보내줌
return result;
}
public static double getArea (double r) {
return getPI()*r*r;
}
// 입력, 출력 모두 없는 형태- 단순한 정보출력 용도
public static void showMenu() {
System.out.println("=================================");
System.out.println(" 1. 회원가입");
System.out.println(" 2. 로그인");
System.out.println(" 3. 회원 정보 수정");
System.out.println(" 4. 회원 탈퇴");
System.out.println(" 5. 회원 목록 보기");
System.out.println(" 0. 종료");
System.out.print("선택 : ");
}
// 출력이 있고, 입력이 없는 메서드
public static double getPI() {
return 3.141595653589793238;
}
// 입력이 있고, 출력이 없는 메서드
public static void ageRating (int age) { // void로 된 것은 return 을 설정하지않아도 됨. void method에서 return이 의미하는 것은 종료.
if (age >=18) {
System.out.println("성인입니다.");
}
else if (age >=14) {
System.out.println("청소년입니다.");
}
else {
System.out.println("어린이 입니다.");
}
}
public static String rating(int score){
String grade ="";
if (score > 100) {grade = "Error";}
// grade 대신 return으로 바로 입력해도 됨.
else if (score <= 100 && score >=90) {
grade = "A" + (score >= 95? "+" : "0");
}
else if(score >= 80) {
grade = "B" + (score >=85 ? "+" : "0");
}
else if(score >= 70) {
grade = "C" + (score >=75 ? "+" : "0");
}
else if(score >= 60) {
grade = "D" + (score >=65 ? "+" : "0");
}
else if(score >= 0) {
grade = "F" ;
}
else {
grade = "Error";
}
return grade;
}
}
method를 이용한 간단한 회원 관리 시스템
-회원탈퇴기능 보강해야함
import java.util.Scanner;
public class MethodMember {
final static int len = 10;
static String [] member_id = new String[len];
static String [] member_pw = new String[len];
static String [] member_name = new String[len];
static String [] member_bt = new String[len];
static int nextIndex = 0;
public static void main(String[] args) {
makeDummyData(3);
Scanner s = new Scanner(System.in);
System.out.println("==========메뉴=========");
System.out.print("1. 회원가입 2. 로그인 3. 회원정보 수정 4.회원 탈퇴 5.회원조회 0. 프로그램 종료 : ");
int sel = s.nextInt();
s.nextLine();
if (sel == 0) {
System.out.println("종료합니다.");
s.close();
return; }
switch (sel) {
case 1:
if (nextIndex == len) {
System.out.println("더 이상 가입 불가능 합니다.");
break;
}
System.out.println("==== 회원 정보 등록 ====");
String input_value = inputMemberInfo();
member_id[nextIndex] = input_value.split(",")[0];
member_pw[nextIndex] = input_value.split(",")[1];
member_name[nextIndex] = input_value.split(",")[2];
member_bt[nextIndex] = input_value.split(",")[3];
nextIndex++;
System.out.println("== 회원 등록 완료 ==");
break;
case 2:
System.out.println("=== 로그인");
boolean loginStatus = checkMember();
if (!loginStatus) {
System.out.println("로그인 정보가 잘못되었습니다.");
}
break;
case 3:
System.out.println("=== 정보수정");
loginStatus = checkMember();
if (!loginStatus) {
System.out.println("로그인 정보가 잘못되었습니다.");
break; // 로그인과 달리 스위치 문을 빠져나가게 함.
}
input_value = inputMemberInfo();
break;
case 4:
System.out.println("=== 회원 탈퇴===");
loginStatus = checkMember();
if (!loginStatus) {
System.out.println("로그인 정보가 잘못되었습니다.");
break; // 로그인과 달리 스위치 문을 빠져나가게 함.
}
break;
case 5:
System.out.println( "======== 회원정보=======");
for(int i=0; i<len; i++) {
if(member_id[i] != null)
System.out.println(member_id[i] + " / " + member_name [i] + " / " + member_bt[i]);
}
break;
default :
System.out.println("잘못된 메뉴 번호입니다.");
}
}
}
// s.close();
public static void makeDummyData (int num) {
if (num <0 ) {
return; // 음수 값이 입력되었다면, 실행하지 않는다.
}
if (num > len) { // 설정된 최대값을 넘는 파라미터 값이라면,
num = len; // 파라미터 값을 최대갑승로 지정한다.
}
// Dummy data
for(int i=0; i<num; i++) {
member_id[i] = "member" + i;
member_pw[i] = "123456";
member_name[i] = "사용자" + i;
member_bt[i] = "20221027" + i;
}
nextIndex = num;
}
public static String inputMemberInfo () {
Scanner s = new Scanner(System.in); // 스캐너를 닫으면 main 스캐너 작동안함.
String id = null;
while (true) {
System.out.print("아이디 (6자 이상) : ");
id = s.nextLine();
if(id.length() < 6) {
System.out.println("아이디는 6자 이상이어야 합니다.");
continue;
}
boolean isDuplicated = false;
for (int i=0; i < len; i++) {
if (id.equals(member_id[i])) {
System.out.println("이미 가입된 아이디 입니다.");
isDuplicated = true;
}
}
if(!isDuplicated) {
break;
}
}
String pw = null;
while (true) {
System.out.print("비밀번호 (6자 이상) : ");
pw = s.nextLine();
if(pw.length() < 6) {
System.out.println("비밀번호는 6자 이상이어야 합니다.");
continue;
}
else {
break;
}
}
System.out.print("이름) : ");
String name = s.nextLine();
String birth = null;
while (true) {
System.out.print("생년월일 (8자리) : ");
birth = s.nextLine();
if(birth.length() != 8) {
System.out.println("생년월일 8자로 입력하세요.");
continue;
}
else {
break;
}
}
return id + "," + pw + "," + name + "," + birth;
}
public static boolean checkMember() {
Scanner s = new Scanner(System.in);
System.out.print("아이디 : ");
String login_id = s.nextLine();
System.out.print("비밀번호 : ");
String login_pw = s.nextLine();
boolean loginStatus = false;
for (int i=0; i<len; i++) {
if((loginStatus=login_id.equals(member_id[i])) && (login_pw.equals(member_pw[i]))){ // login_id가 member_id[i]와 같다면 loginStatus는 true가 됨
System.out.println("== 인증 성공 ==");
System.out.println("아이디 : " + member_id[i]);
System.out.println("이름 : " + member_name[i]);
System.out.println("생년월일 : " + member_bt[i]);
break;
}
}
return loginStatus;
}
}