본문 바로가기
Example 2018

basicJavaProject, testOperatorProject, 연산자연습프로젝트, 제어문연습프로젝트, LogicSilsub, LoopSilsub, LogicHomework, LogicHomework2, testArrayProject, javaTest1_답안, test.controller

by ZEROMI 2018. 4. 18.
728x90

package com.kh.var.example;


public class TestMain {


public static void main(String[] args) {

// 변수 연습문제 실행용

Example exam = new Example();

//exam.myProfile();

//exam.inputProfile();

//exam.example1();  //연습문제1 실행

exam.example3();

}


}


package basic.run;


import basic.variable.VariableSample;


public class Main {

public static void main(String[] args){

VariableSample vs = new VariableSample();

vs.checkVariable();

}

/*static public void main(String[] args){

System.out.println("변수 연습");

//자바에서는 다른 패키지에 속한 클래스를 사용할 때

//import한다.

//자바에서 다른 클래스를 사용하려면

//클래스명 레퍼런스변수 = new 클래스명();

VariableSample vsamp = new VariableSample();

//해당 클래스가 가지고 있는 메소드를 실행

//레퍼런스변수.메소드명();

vsamp.displayMessage();

System.out.println("Main의 main() 끝납니다...");

}*/

}


package basic.variable;

/* 자바 기본 자료형에 대한 변수 연습용 클래스
 * 기능 제공용 클래스
 */
public class VariableSample {
//특정 기능 수행에 필요한 소스 코드는 반드시
//멤버함수(Method)를 만들고 그 안에 작성해야 함
//System.out.println("소스 작동 확인");
//클래스 블럭 {} 안에서 바로 작성하면 에러남
public void displayMessage(){
System.out.println("안녕하세요...");
System.out.println("자바언어를 사용해서 변수라는 거 배우는 중입니다...");
}
//기본자료형(Primitive Type) 변수 선언과 값 기록, 확인
public void checkVariable(){
//메소드 안에서 선언되는 변수 : 지역(Local)변수
//메소드 구역 안에서만 사용되는 변수
//1. 변수 선언 : 변수방 만들기
//기본자료형 변수명;
boolean isOk;
byte recode;
short sValue;
int age;
long pay;
float average;
double tax;
char grade;
//문자나열값 : 문자열
//자바에서는 문자열값 취급시 String 클래스 사용함
//문자열값 표기시에는 반드시 "문자열값" 표기함
String name;
name = "윤차주";
//2. 준비된 변수방에 값 기록하기
//변수명 = 값;
isOk = true;
recode = (byte)130;
sValue = (short)75000;
age = 27;
pay = 5000000000L; //iso9001 표준
average = 98.56f;  //iso 표준
tax = 0.0025;
grade = 'A'; //문자값은 반드시 '문자'를 붙여야 함
//3. 변수 사용 : 변수명만 쓰면 됨
System.out.println("isOk 변수방의 값 : " 
+ isOk);
System.out.println("recode 변수방의 값 : "
+ recode);
System.out.println("sValue 변수방의 값 : " +
sValue);
System.out.println("나이 : " + age);
System.out.println("연봉 : " + pay);
System.out.println("평균점수 : " + average);
System.out.println("세율 : " + tax);
System.out.println("등급 : " + grade);
System.out.println("이름 : " + name);
}
}

package com.kh.var.example;

import java.util.Scanner;

public class Example {
//본인의 신상정보를 변수에 기록하고, 화면에 출력 처리
public void myProfile(){
//이름, 나이, 이메일, 전화번호, 성별(남/여)
/*String name;
int age;
String email;
String phone;
char gender;
name = "홍길동";
age = 25;
email = "hong123@iei.or.kr";
phone = "010-1234-5678";
gender = '남';*/
//변수의 초기화
//자료형 변수명 = 값;
String name = "홍길동";
int age = 25;
String email = "hong1234@iei.or.kr";
String phone = "010-1234-5678";
char gender = '남';
System.out.println("이름 : " + name);
System.out.println("나이 : " + age);
System.out.println("이메일 : " + email);
System.out.println("전화번호 : " + phone);
System.out.println("성별 : " + gender);
}
//키보드로 값 입력받아 변수에 기록하는 테스트 메소드
public void inputProfile(){
Scanner sc = new Scanner(System.in);
System.out.print("이름을 입력하세요 : ");
String name = sc.next();
System.out.print("나이 입력 : ");
int age = sc.nextInt();
System.out.print("키 입력(소숫점 첫째자리까지) : ");
double height = sc.nextDouble();
System.out.println("이름 : " + name);
System.out.println("나이 : " + age);
System.out.println("키 : " + height);
}

//연습문제 1
public void example1(){
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 정수 : ");
int first = sc.nextInt();
System.out.print("두번째 정수 : ");
int second = sc.nextInt();
System.out.println("더하기 결과 : " + (first + second));
System.out.println("빼기 결과 : " + (first - second));
System.out.println("곱하기 결과 : " + (first * second));
System.out.println("나누기한 몫 결과 : " + (first / second));
System.out.println("나누기한 나머지 결과 : " + (first % second));
}
//연습문제 2
public void example2(){
Scanner sc = new Scanner(System.in);
System.out.print("가로 : ");
double width = sc.nextDouble();
System.out.print("세로 : ");
double height = sc.nextDouble();
System.out.println("면적 : " + (width * height));
System.out.println("둘레 : " + ((width + height) * 2));
}
//연습문제 3
public void example3(){
Scanner sc = new Scanner(System.in);
System.out.print("영어문자열 입력 : ");
String value = sc.next();
System.out.println("첫번째 글자 : " + value.charAt(0));
System.out.println("두번째 글자 : " + value.charAt(1));
System.out.println("세번째 글자 : " + value.charAt(2));
}
}

-----------------------------------------------------------------------------------------------


package cast.run;

import cast.sample.*;

public class TestCasting {

public static void main(String[] args) {
// 형변환 실행 테스트용
TypeCastingSample test = new TypeCastingSample();
//test.autoCasting();
//test.byteShortCalculator();
//test.printUniCode();
test.uniCodeToCharactor();
//new TypeCastingSample().autoCasting();
//new TypeCastingSample().directCasting();
}

}

package variable.practice;

import java.util.Scanner;

public class Practice2 {
//실습1
public void test1(){
/*학생이름 (문자열)
학년 (정수)
반 (정수)
번호 (정수)
성별(남/여) (문자) //문자열로 입력받은 후, 문자하나 분리해야 함
성적 (실수) //소숫점 아래 둘째자리까지 입력받음
- 출력 예
3학년 2반 24번 남학생 홍길동은 성적이 95.55이다.*/
Scanner sc = new Scanner(System.in);
System.out.print("학년 : ");
int year = sc.nextInt();
System.out.print("반 : ");
int ban = sc.nextInt();
System.out.print("번호 : ");
int no = sc.nextInt();
System.out.print("성별[남/여] : ");
char gender = sc.next().charAt(0);
System.out.print("성적[소숫점 둘째자리까지] : ");
double score = sc.nextDouble();
System.out.println(year + "학년 "
+ ban + "반 " + no + "번 "
+ gender + "학생의 성적은 "
+ score + "이다.");
}
//실습2
public void practice2(){
/* 
*** 초기 메뉴 ***
1. 입력
2. 수정
3. 조회
4. 삭제
7. 종료
메뉴번호 입력 : 번호입력받음
=> 처리내용 : 
1 입력 --> "1번 메뉴가 선택되었습니다."*/
Scanner sc = new Scanner(System.in);
System.out.println("*** 초기 메뉴 ***");
System.out.println("1. 입력");
System.out.println("2. 수정");
System.out.println("3. 조회");
System.out.println("4. 삭제");
System.out.println("7. 종료");
System.out.print("메뉴번호 입력 : ");
int no = sc.nextInt();
System.out.println(no + "번 메뉴가 선택되었습니다.");
}
//실습3
public void practice3(){
/* 1. 두 개의 정수 변수 선언
   2. 키보드로 두 개의 정수를 입력받아
   3. 두 수의 합, 차, 곱, 몫, 나머지를 출력함
ex>
첫번째 정수 : 25
두번째 정수 : 7
25 + 7 = 32
25 - 7 = 18
25 * 7 = 175
25 / 7 = 3
25 % 7 = 4
*/
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 정수 : ");
int first = sc.nextInt();
System.out.print("두번째 정수 : ");
int second = sc.nextInt();
System.out.println(first + " + " + second 
+ " = " + (first + second));
System.out.println(first + " - " + second 
+ " = " + (first - second));
System.out.println(first + " * " + second 
+ " = " + (first * second));
System.out.println(first + " / " + second 
+ " = " + (first / second));
System.out.println(first + " % " + second 
+ " = " + (first % second));
}
//실습4
public void practice4(){
/* java.lang.Double 참조
* double 자료형의 최대값, 최소값, 비트수, 바이트
* 그외 상수필드의 값 모두 출력 조회함
* */
System.out.println("double 자료형 정보");
System.out.println("최대값 : " + Double.MAX_VALUE);
System.out.println("최소값 : " + Double.MIN_VALUE);
System.out.println("할당크기 : " + Double.BYTES);
System.out.println("비트수 : " + Double.SIZE);
System.out.println("최대 : " + Double.MAX_EXPONENT);
System.out.println("최소 : " + Double.MIN_EXPONENT);
System.out.println("일반 : " + Double.MIN_NORMAL);
}
}

package variable.sample;

import java.util.Scanner;

public class VariablePractice {
//실습1.
public void sungjuk(){
//키보드로 국어, 영어, 수학점수를 
//소숫점아래 첫째자리까지 입력받아,
//각 변수에 기록하고
//세과목의 총점과 평균을 계산하여 출력 처리함
//총점 변수와 평균 변수에 결과값 기록하고,
//총점과 평균은 정수로 출력되게 한다.
Scanner sc = new Scanner(System.in);
System.out.print("국어점수(소숫점 첫째자리까지) : ");
double kor = sc.nextDouble();
System.out.print("영어점수(소숫점 첫째자리까지) : ");
double eng = sc.nextDouble();
System.out.print("수학점수(소숫점 첫째자리까지) : ");
double mat = sc.nextDouble();
int total = (int)(kor + eng + mat);
int average = total / 3;
System.out.println("총점 : " + total);
System.out.println("평균 : " + average);
}
//실습3
public void printBitCount(){
System.out.print("정수 입력 : ");
int num = new Scanner(System.in).nextInt();
//입력된 정수의 비트값 확인
printBit(num);
System.out.println(num + 
"의 2진수에 포함된 비트 1의 갯수 : " 
+ Integer.bitCount(num));
}
//int 정수의 메모리에 기록된 비트값 출력용 메소드
public void printBit(int num){
System.out.println(num + "의 2진수 값 확인");
for(int k = 31; k >= 0; k--){
System.out.print(num >> k & 1);
}
System.out.println();
}
//변수는 값 1개만 기록함
//다른 값이 기록이 들어오면, 덮어쓰기함
public void testVariable(){
int num = 10;
System.out.println("num : " + num);
num = 33;  //이전 값 덮어쓰기함
System.out.println("num : " + num);
//변수 공간의 기록값은 변경될 수 있음.
//변수방에 기록된 초기값을 변경할 수 없게 하고 싶다면
final double PI_VALUE = 3.14159;
//변수선언시 자료형 앞에 final 을 붙이면
//변수에 기록된 초기값 변경 불가능이 됨
//항상 같은 값을 사용하는 변수 == 상수라고 함
System.out.println("PI : " + PI_VALUE);
/*pi = 3.759;
System.out.println("pi : " + pi);*/
}
//문자열 + 숫자 + 숫자
//숫자 + 숫자 + 문자열
public void testStringConcat(){
System.out.println("결과 1 : " + 7 + 9);
System.out.println(7 + 9 + " 결과 2");
}
//정수는 최대값, 최소값 범위 초과시 오버플로우됨
public void testOverflow(){
byte b = Byte.MAX_VALUE;
System.out.println("b : " + b);
byte b2 = (byte)(b + 2);
System.out.println("b2 : " + b2);
}
}

package cast.sample;

//형변환 테스트 기능 제공용
public class TypeCastingSample {
//자동형변환 테스트용 메소드
public void autoCasting(){
//큰 사이즈의 변수방에 작은 사이즈의 값이 대입될 때
double dValue = 123;  //double <= int
//같은 종류끼리만 대입 가능하므로, 
//자동으로 int 가 double 값으로 바뀜
System.out.println("dValue : " + dValue);
//자료형이 다른 값들이 계산될 때
//크기가 작은 자료형 값이 큰 자료형으로 바뀜
int num = 33;
double dnum = 75.4;
double result = num + dnum;
//int + double => double + double
System.out.println("result : " + result);
}
//강제형변환 테스트용 메소드
public void directCasting(){
//큰 자료형 값이 작은 크기의 자료형에 적용될 때
//직접 형변환을 명시해 주어야 함
int value = (int)45.7;
System.out.println("value : " + value);
//같은 종류끼리 계산할 수 있고,
//결과값의 자료형도 같은 타입이어야 함
int max = Integer.MAX_VALUE;
//기본자료형에 대한 클래스를 자바가 제공함
//이러한 클래스를 래퍼(Wrapper) 클래스라고 함
System.out.println("max : " + max);
System.out.println("더하기 결과 : " + 
(max + max));
long sum = (long)max + max;
System.out.println("sum : " + sum);
}
//자바에서의 byte, short 계산 결과 테스트용 메소드
public void byteShortCalculator(){
byte b1 = Byte.MAX_VALUE;
byte b2 = Byte.MIN_VALUE;
byte b3 = (byte)(b1 + b2);
int num = b1 + b2;
System.out.println("b3 : " + b3 + ", num : "
+ num);
short s1 = Short.MAX_VALUE;
short s2 = Short.MIN_VALUE;
short s3 = (short)(s1 + s2); //결과 자료형이 int 임
int num2 = s1 + s2;
System.out.println("s3 : " + s3 + ", num2 : "
+ num2);
}
//문자(char) <--> 정수(int) 간 형변환 가능함
public void printUniCode(){
java.util.Scanner sc = 
new java.util.Scanner(System.in);
System.out.print("문자 하나 입력 : ");
char ch = sc.next().charAt(0);
int uniCode = ch;
System.out.println(ch + "의 유니코드 : " + uniCode);
}
//숫자를 입력받아 해당 코드의 문자를 출력시킴
//0 ~ 65535 (비어있는 코드도 있음)
public void uniCodeToCharactor(){
System.out.print("유니코드 입력 : ");
int code = new java.util.Scanner(System.in).nextInt();
System.out.println(code + " : " + (char)code);
}
}

--------------------------------------------------------------------------------

package 연산자.실행;

import 연산자.샘플.연산자테스트샘플;

public class 메인 {

public static void main(String[] args) {
// 연산자테스트샘플 클래스 메소드 실행
연산자테스트샘플 샘플 = new 연산자테스트샘플();
//샘플.괄호연산자테스트();
//샘플.부호연산자테스트();
//샘플.증감연산자테스트();
//샘플.형변환연산자테스트();
//샘플.비교연산자테스트();
//샘플.일반논리연산자연습1();
//샘플.일반논리연산자연습2();
//샘플.양수냐();
//샘플.대문자냐();
//샘플.예쓰이냐();
//샘플.합격이냐();
//샘플.일반논리연산자특징확인();
//샘플.삼항연산자테스트();
//샘플.삼항연산자중첩사용();
//샘플.삼항연산자중첩테스트2();
//샘플.성적등급출력();
//샘플.합격여부();
샘플.printInfo();
}

}


package 연산자.샘플;

import java.util.Scanner;

public class 연산자테스트샘플 {
public void 괄호연산자테스트(){
/*int num1 = 12;
int num2 = 33;*/
int num1 = 12, num2 = 33;  //나열연산자
System.out.println("계산1 : " + 
               (num1 + 5 * num2));
System.out.println("계산2 : " + 
               ((num1 + 5) * num2));
}
public void 부호연산자테스트(){
int num = -25;
System.out.println("num : " + +num);
System.out.println("-num : " + -num);
//-부호연산자는 -1 * 라는 뜻임
//-1 * -25 => 25가 됨
}
public void 증감연산자테스트(){
//++ : 1증가, -- : 1감소
int num = 10;
System.out.println("num : " + num);
num++;  //num = num + 1;
System.out.println("num++ : " + num); //11
++num;
System.out.println("++num : " + num); //12
num--;
System.out.println("num-- : " + num); //11
--num;
System.out.println("--num : " + num); //10
//증감연산자가 변수와 함께 단독 사용시에는
//변수앞/뒤 구분 안 함 : 결과는 동일함
//증감연산자가 변수와 함께 다른 문장 또는 식의
//일부분으로 사용시에는 변수 앞/뒤 구분함
int result = num++;  //처리후 증가를 의미함
System.out.println("result : " + result);
System.out.println("num : " + num);
int result2 = ++result;  //증가후 처리
System.out.println("result2 : " + result2);
System.out.println("result : " + result);
System.out.println("result2++ : " + result2++);
System.out.println("result2 : " + result2);
System.out.println("++result2 : " + ++result2);
}
public void 형변환연산자테스트(){
byte b1 = Byte.MAX_VALUE;  //127
short s1 = Short.MAX_VALUE; //32767
//int result = b1 + s1;
short result = (short)(b1 + s1);  //overflow
//byte + short => short + short => int
System.out.println("result : " + result);
}
public void 비교연산자테스트(){
int first = 100, second = 123;
System.out.println("first > second : " + 
         (first > second));  //false
System.out.println("first < second : " + 
         (first < second));  //true
System.out.println("first > 0 : " + 
         (first > 0));  //양수냐 : true
System.out.println("first >= 100 : " + 
         (first >= 100));  //100이상이냐 : true
System.out.println("second <= 200 : " + 
         (second <= 200)); //200이하냐 : true
System.out.println("first 변수값이 100이냐 : " + 
         (first == 100));  //true
System.out.println("first 변수값이 100이 아니냐 : " + 
         (first != 100));
System.out.println("first 변수값이 100이 아니냐 : " + 
         !(first == 100));
}
public void 일반논리연산자연습1(){
//논리값(true/false)으로 계산하는 연산자
System.out.println(true && true); //true
System.out.println(true && false); //false
System.out.println(false && true); //false
System.out.println(false && false); //false
System.out.println(true || true); //true
System.out.println(true || false); //true
System.out.println(false || true); //true
System.out.println(false || false); //false
}
public void 일반논리연산자연습2(){
//&& : 제시한 모든 조건이 다 맞는지 확인할 때
//범위 확인
//예1 : 키보드로 정수를 하나 입력받아
// 1부터 100사이의 값인지 확인
// 1 <= 정수 <= 100
System.out.print("정수 하나 입력 : ");
int num = new Scanner(System.in).nextInt();
System.out.println(num + 
"값이 1~100 사이의 값이냐 : " + 
(num >= 1 && num <= 100));
}
//연습1 : 키보드로 정수를 하나 입력받아서
//       양수인지 확인하는 구문 작성 실행
public void 양수냐(){
System.out.print("정수 하나 입력 : ");
int num = new Scanner(System.in).nextInt();
System.out.println(num + 
" 은 양수냐? " + (num > 0));
}
//연습2 : 문자하나를 입력받아, 영문대문자인지 확인
//'A' <= 문자 <= 'Z' 또는 65 <= 문자 <= 91
public void 대문자냐(){
System.out.print("문자하나 입력 : ");
/*String value = new Scanner(System.in).next();
char ch = value.charAt(0);*/
char ch = new Scanner(System.in).next().charAt(0);
/*System.out.println(ch + " 가 대문자냐? "
+ (ch >= 'A' && ch <= 'Z'));*/
System.out.println(ch + " 가 대문자냐? "
+ (ch >= 65 && ch <= 91));
}
//연습3 : 문자하나를 입력받아, 
//     그 문자가 'Y' 또는 'y' 이냐
public void 예쓰이냐(){
System.out.print("문자 하나 입력 : ");
char answer = new Scanner(System.in).next().charAt(0);
System.out.println("예쓰입니까? " + 
    (answer == 'Y' || answer == 'y'));
}
//연습4 : 국어, 영어, 수학 점수를 입력받아
// 총점과 평균을 계산하고
// 3과목의 점수가 모두 40점이상이고, 
//평균이 60점이상이냐
public void 합격이냐(){
Scanner 키보드 = new Scanner(System.in);
System.out.print("국어점수 : ");
int 국어 = 키보드.nextInt();
System.out.print("영어점수 : ");
int 영어 = 키보드.nextInt();
System.out.print("수학점수 : ");
int 수학 = 키보드.nextInt();
int 평균 = (국어 + 영어 + 수학) / 3;
System.out.println("합격이냐 ? " + 
(국어 >= 40 && 영어 >= 40 && 
수학 >= 40 && 평균 >= 60));
}
//&&, || 연산자의 특징 확인
//&&는 앞이 거짓이면 뒤를 실행 안 함
//거짓 && 참, 거짓 && 거짓 => 결론은 거짓임
//거짓 & 참, 거짓 & 거짓 => 결론은 false임 (뒤를 실행함)
//|| 는 앞이 참이면 뒤를 실행 안 함
// true || true => true, true || false => true
// true | true => true, true | false => true
//  (뒤까지 실행함)
public void 일반논리연산자특징확인(){
int num = 10;
System.out.println(false && ++num > 0);
System.out.println("num : " + num);
System.out.println(true || ++num > 0);
System.out.println("num : " + num);
System.out.println(false & ++num > 0);
System.out.println("num : " + num);
System.out.println(true | ++num > 0);
System.out.println("num : " + num);
}
public void 삼항연산자테스트(){
//첫번째 ? 두번째 : 세번째
//조건문의 형태를 가진 연산자임
//조건식? 참일때 사용할 값: 거짓일때 사용할값
//조건식은 반드시 결과가 참 또는 거짓이 나와야함
//예 : 정수를 하나 입력받아, 짝수이면 "짝수다."
//   짝수가 아니면 "홀수다." 출력 처리
System.out.print("정수 하나 입력 : ");
int num = new Scanner(System.in).nextInt();
/*String result = 
(num % 2 == 0)? "짝수다." : "홀수다.";
System.out.println(num + " 은 " + result);*/
System.out.println(num + " 은 " + 
   ((num % 2 == 0)? "짝수다." : "홀수다."));
}
//삼항연산자 중첩 사용
// 조건1? 값1: (조건2? 값2: (조건3? 값3: 값4) )
public void 삼항연산자중첩사용(){
//정수를 하나 입력받아, 
//양수이면 "양수다.", 0이면 "0이다.", 
//음수이면 "음수다."
System.out.print("정수 하나 입력 : ");
int num = new Scanner(System.in).nextInt();
String result = (num > 0)? "양수다." : 
    ((num == 0)? "0이다." : "음수다.");
System.out.println(num + " : " + result);
}
//연습 : 문자를 하나 입력받아
//영어대문자이면 "upper", 소문자이면 "lower",
//숫자문자이면 "number", 그외 문자는 "etc" 로 출력
public void 삼항연산자중첩테스트2(){
System.out.print("문자 하나 입력 : ");
char ch = new Scanner(System.in).next().charAt(0);
String result = (ch >= 'A' && ch <= 'Z')? "upper":
((ch >= 'a' && ch <= 'z')? "lower": 
((ch >= '0' && ch <= '9')? "number": "etc"));
System.out.println(ch + " : " + result);
}
//연습 : 점수(int)를 입력받아
// 90점이상이면 'A', 80점이상 90점미만이면 'B',
// 70점이상 80점미만이면 'C', 
//60점이상 70점미만 'D', 60점미만은 'F' 를
// 변수에 기록하고 출력 처리함
public void 성적등급출력(){
System.out.print("점수 : ");
int score = new Scanner(System.in).nextInt();
char grade = (score >= 90)? 'A':
((score >= 80 /*&& score < 90*/)? 'B':
((score >= 70 /*&& score < 80*/)? 'C':
((score >= 60 /*&& score < 70*/)? 'D': 'F')));
System.out.println("점수 : " + score);
System.out.println("등급 : " + grade);
}
//연습 : 국어, 영어, 수학 점수를 입력받아
// 총점과 평균을 계산하고
// 3과목의 점수가 모두 40점이상이고, 
//평균이 60점이상이면 "합격", 아니면 "불합격" 출력
public void 합격여부(){
Scanner 키보드 = new Scanner(System.in);
System.out.print("국어점수 : ");
int 국어 = 키보드.nextInt();
System.out.print("영어점수 : ");
int 영어 = 키보드.nextInt();
System.out.print("수학점수 : ");
int 수학 = 키보드.nextInt();
int 평균 = (국어 + 영어 + 수학) / 3;
String result = (국어 >= 40 && 영어 >= 40 && 
수학 >= 40 && 평균 >= 60)?
"합격": "불합격";
System.out.println("결과 : " + result);
}
//연습 : 키보드로 주민등록번호를 입력받아,
//8번째자리 문자를 추출해서
//'1' 또는 '3' 이면 "남자", 
//'2' 또는 '4' 이면 "여자",
//'5'이면 "해외교포" 로 출력
//주민등록번호 : 771225-1234567
//당신은 남자입니다.
public void printInfo(){
System.out.print("주민등록번호 : ");
String personID = new Scanner(System.in).next();
char info = personID.charAt(7);
String result = 
(info == '1' || info == '3')? "남자":
(info == '2' || info == '4')? "여자":
"해외교포";
System.out.println("당신은 " + result + "입니다.");
}
}


----------------------------------------------------------------------

package 연산자.샘플;

import java.util.Scanner;

public class OperatorSample {
//비트(bit) 연산자
//~(틸드: Tield, 2), <<, >>, >>> (쉬프트: shift, 5)
//비트논리연산자 : &(and, 8), ^(xor, 9), |(or, 10)
//정수에만 사용하는 연산자임
//메모리에 기록된 정수의 비트값(1, 0)을 계산함
//메모리에 기록된 비트값을 정수 1 또는 0으로 바꾸어서
//출력 처리하는 메소드
public void printBit(int num){
System.out.print(num + " : ");
for(int i = 31; i >= 0; i--)
System.out.print(num >> i & 1);
System.out.println();
}
public void testTeild(){
//비트반전연산자 
//비트 1은 0으로, 비트 0은 1로 바꾸는 연산자
System.out.print("정수 하나 입력 : ");
int num = new Scanner(System.in).nextInt();
printBit(num);
printBit(~num);
}
public void testShift(){
//shift 연산자 : 비트 자리 이동 연산자
//정수값 >> 자리이동값 : 2의 제곱수에 대한 나누기
//정수값 << 자리이동값 : 2의 제곱수에 대한 곱하기
//정수값 >>> 자리이동값
//정수의 비트값을 이동방향으로 자리 이동시킴
//<< : 비게 되는 오른쪽은 무조건 0 채움
//>> : 비게 되는 왼쪽은 양수이면 0, 음수이면 1 채움
//     부호비트를 채움
//>>> : 비게 되는 왼쪽은 무조건 0 채움
//    자바만 제공하는 연산자임
Scanner sc = new Scanner(System.in);
System.out.print("정수 하나 입력 : ");
int num = sc.nextInt();
System.out.print("비트 자리 이동값 : ");
int move = sc.nextInt();
printBit(num);
printBit(num << move);
printBit(num >> move);
printBit(num >>> move);
}
public void testBitLogical(){
//비트논리연산자 : &(AND), ^(XOR), |(OR)
//AND : 1 & 1 => 1,  나머지 경우는 모두 0
//OR : 0 | 0 => 0, 나머지 경우 결과는 모두 1
//XOR : 1 ^ 0, 0 ^ 1 => 1
//      1 ^ 1, 0 ^ 0 => 0
//  비교되는 두 비트가 다를 때 1, 같은 때 0임
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 정수 : ");
int first = sc.nextInt();
System.out.print("두번째 정수 : ");
int second = sc.nextInt();
printBit(first);
printBit(second);
System.out.println("--------------------------");
printBit(first & second);
printBit(first ^ second);
printBit(first | second);
}
public void testComplex(){
//복합 대입 연산자
//산술대입연산자 : +=, -=, *=, /=, %=
//쉬프트대입연산자 : <<=, >>=, >>>=
//비트논리대입연산자 : &=, ^=, |=
int num = 10;
System.out.println("num : " + num);
//1이 아닌 값의 증가/감소가 필요할 때
//num 변수의 값을 3증가 시킬 때
//num = num + 3;
num += 3;  //사용 권장함. 연산속도가 빠름
System.out.println("num : " + num);
num -= 2;  //num = num - 2; 결과가 같음
System.out.println("num : " + num);
num *= 4;  //num = num * 4;
System.out.println("num : " + num);
num /= 4;  //num = num / 4;
System.out.println("num : " + num);
num %= 2;  //num = num % 2;
System.out.println("num : " + num);
num = 10;
System.out.println("num : " + num);
num <<= 2; //num = num << 2;
System.out.println("num : " + num);
num >>= 2; //num = num >> 2;
System.out.println("num : " + num);
num = 10;
num >>>= 3; //num = num >>> 3;
System.out.println("num : " + num);
num = 10;
System.out.println("num : " + num);
num &= 3;  //num = num & 3;
System.out.println("num : " + num);
num = 10;
System.out.println("num : " + num);
num ^= 3;  //num = num ^ 3;
System.out.println("num : " + num);
num = 10;
System.out.println("num : " + num);
num |= 3;  //num = num | 3;
System.out.println("num : " + num);
}
}

package logic.testswitch;

import java.util.Scanner;

public class SwitchSample {
/* switch(변수 또는 계산식){  값이 뭐냐 (변수 == 값)
* case 값: 값이 맞았을 때 실행할 문장;  break;
* case 값: ............; break;
* ...
* default: 위에 제시된 모든 값이 아닐 때 실행할 문장;
* }
* default 는 사용 안 할수도 있음
* case 에 사용하는 값은 양수와 문자값, 문자열값
*/
public void test1(){
System.out.print("정수 하나 입력 : ");
int num = new Scanner(System.in).nextInt();
//num 변수가 가진 값이 뭐냐?
//if(num == 비교값){}
switch(num){
case 1: System.out.println("입장하세요.");
       break;
case 2: System.out.println("줄 서세요.");
       break;
case 3: System.out.println("퇴장하세요.");
       break;
default: System.out.println("즐겁게 구경하세요.");
}
}
/* 입력예 : 
* 첫번째 정수 : 25
* 두번째 정수 : 7
* 연산문자(+,-,*,/,%) : +
* 출력예 : 
* 25 + 7 = 32
* 연산문자에 따라 계산식이 출력되게 구현
*/
public void calculator(){
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 정수 : ");
int first = sc.nextInt();
System.out.print("두번째 정수 : ");
int second = sc.nextInt();
System.out.print("연산문자(+,-,*,/,%) : ");
char op = sc.next().charAt(0);
int result;  
//지역변수(Local Variable)는 반드시 초기화함
switch(op){
case '+': result = first + second; break;
case '-': result = first - second; break;
case '*': result = first * second; break;
case '/': result = first / second;  break;
case '%': result = first % second; break;
default: System.out.println("잘못된 문자가 입력되었습니다.");
System.out.println("다시 입력하십시오.");
result = 0;
}
System.out.println(first + " " + op + " " +
second + " = " + result);
}
/* 과일명과 수량을 입력받아, 가격을 계산해서 출력
* (String) (int)
* 과일에 따라 한 개의 가격 저장용 변수 : 
* int price;
* 사과 1200
* 배    2500
* 포도 5000
* 오렌지 500
* 키위 350
* 그외 다른 과일은 0
* 총구매가격 : price * 수량
*/
public void test2(){
Scanner sc = new Scanner(System.in);
System.out.print("과일명 : ");
String fruitName = sc.next();
System.out.print("수량 : ");
int quantity = sc.nextInt();
int price;
switch(fruitName){
case "사과": price = 1200; break;
case "배": price = 2500; break;
case "포도": price = 5000; break;
case "오렌지": price = 500; break;
case "키위": price = 350; break;
default: price = 0;
}
System.out.println(fruitName + 
" 한 개의 가격은 " + price + "원");
System.out.println("총 구매가격 : " + 
         (price * quantity));
}
public void changeIfElse(){
Scanner sc = new Scanner(System.in);
System.out.print("과일명 : ");
String fruitName = sc.next();
System.out.print("수량 : ");
int quantity = sc.nextInt();
int price;
//클래스를 자료형으로 만들어진 변수
//   == 레퍼런스변수 라고 함
//기본 자료형 변수방에는 값이 기록됨
//레퍼런스변수 방에는 주소가 기록됨
if(fruitName.equals("사과"))
price = 1200;
else if(fruitName.equals("배"))
price = 2500;
else if(fruitName.equals("포도"))
price = 5000;
else if(fruitName.equals("오렌지"))
price = 500;
else if(fruitName.equals("키위"))
price = 350;
else price = 0;
System.out.println(fruitName + 
" 한 개의 가격은 " + price + "원");
System.out.println("총 구매가격 : " + 
         (price * quantity));
}
}

package logic.testif;

import java.util.Scanner;

public class IfSample {
//조건문에서 if만 사용한 경우
//조건을 만족하는 경우에만 준비된 내용이 실행되게 할 때
//if(조건표현식){ 조건의 결과가 참일 때 실행 내용 }
//단, 조건표현식은 반드시 true/false 의 결과가 나오게 작성
public void test1(){
System.out.print("정수 하나 입력 : ");
int num = new Scanner(System.in).nextInt();
if(num > 0){  //num의 값이 양수일 때만 작동
System.out.println(num + "은 양수!");
} //0이거나 음수일 때는 실행될 내용이 없음
}
public void test2(){
//문자 하나 입력받아, 대문자일때만 유니코드가 출력
System.out.print("문자 하나 입력 : ");
/*Scanner sc = new Scanner(System.in);
String s = sc.next();
char ch = s.charAt(0);*/
char ch = new Scanner(System.in).next().charAt(0);
if(ch >= 'A' && ch <= 'Z'){
System.out.println(ch + " : " + (int)ch);
}
}
public void test3(){
Scanner sc = new Scanner(System.in);
//콘솔에 "회원이면 1, 비회원이면 2 입력 : " 출력
System.out.print("회원이면 1, 비회원이면 2 입력 : ");
int no = sc.nextInt();
/*입력값이 1일때는 
* "로그인할 아이디 : " 출력하고, 아이디 입력받음
* "암호 : " 출력하고, 암호 입력받음
* 아이디와 암호 출력 처리
*/
if(no == 1){
System.out.print("로그인할 아이디 : ");
String id = sc.next();
System.out.print("암호 : ");
String password = sc.next();
System.out.println(id + ", " + password);
}
/* 입력값이 2일 때는
* "회원으로 가입하셔야 합니다."
* "이름 : " 출력하고, 이름 입력받음
* "지정할 아이디 : " 출력하고, 아이디 입력받음
* "지정할 암호 : " 출력하고, 암호 입력받음
* "이메일 : " 출력하고, 이메일 입력받음
* "전화번호 : " 출력하고, 전화번호 입력받음
* "성별[남/여] : " 출력하고, 성별 입력받음
* "나이 : " 출력하고, 나이 입력받음
* 입력받은 값들 모두 출력 처리
*/
if(no == 2){
System.out.println("회원으로 가입하셔야 합니다.");
System.out.print("이름 : ");
String name = sc.next();
System.out.print("지정할 아이디 : ");
String id = sc.next();
System.out.print("지정할 암호 : ");
String password = sc.next();
System.out.print("이메일 : ");
String email = sc.next();
System.out.print("전화번호 : ");
String phone = sc.next();
System.out.print("성별[남/여] : ");
char gender = sc.next().charAt(0);
System.out.print("나이 : ");
int age = sc.nextInt();
System.out.println(name + ", " + id + ", "
+ password + ", " + email + ", "
+ phone + ", " + gender + ", "
+ age);
}
}
}

package logic.testif;

import java.util.Scanner;

public class IfElseSample {
// if(조건식){ 
//    결과가 참일때 실행할 내용
// }else{ 
//    결과가 거짓일 때 실행할 내용
// }
public void testIfElse1(){
//정수를 하나 입력받아, 짝수이면 "짝수다." 출력
//짝수가 아니면 "홀수다." 출력
System.out.print("정수 하나 입력 : ");
int num = new Scanner(System.in).nextInt();
if(num % 2 == 0){
System.out.println(num + "은 짝수다.");
}else{ //짝수가 아니냐 == 홀수냐
System.out.println(num + "은 홀수다.");
}
}
public void testIfElse2(){
/* 국어, 영어, 수학 점수를 입력받아
* 총점과 평균을 계산하고
* 각 과목의 점수가 각각 40점이상이고,
* 평균이 60점이상이면 "합격!" 출력하고,
* 아니면 "불합격!" 출력
*/
Scanner sc = new Scanner(System.in);
System.out.print("국어 : ");
int kor = sc.nextInt();
System.out.print("영어 : ");
int eng = sc.nextInt();
System.out.print("수학 : ");
int mat = sc.nextInt();
int tot = kor + eng + mat;
int avg = tot / 3;
if(kor >= 40 && eng >= 40 && mat >= 40
&& avg >= 60){
System.out.println("합격!");
}else{
System.out.println("불합격!");
}
}
public void testIfElse3(){
/* 두 개의 정수를 입력받아,
* 두 수 모두 양수일 때만
* 두수의 합, 차, 곱, 몫, 나머지를 계산해서 출력
* 한 개라도 양수가 아니면
* 콘솔에 "양수가 아닌 값은 계산할 수 없습니다."
* 출력함
*/
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 정수 : ");
int first = sc.nextInt();
System.out.print("두번째 정수 : ");
int second = sc.nextInt();
if(first > 0 && second > 0){
System.out.println(first + " + " + second
+ " = " + (first + second));
System.out.println(first + " - " + second
+ " = " + (first - second));
System.out.println(first + " * " + second
+ " = " + (first * second));
System.out.println(first + " / " + second
+ " = " + (first / second));
System.out.println(first + " % " + second
+ " = " + (first % second));
}else{
System.out.println(
"양수가 아닌 값은 계산할 수 없습니다.");
}
}
}

package logic.testif;

import java.util.Scanner;

public class IfElseIfSample {
/* 다중(중첩) if 문 : else 뒤에 다시 if(조건식) 사용
* if(조건식1){
*   조건식1이 참일 때 실행할 내용1
* }else if(조건식2){
*   조건식1이 거짓이고, 조건식2가 참일 때 실행할 내용2
* }else if(조건식3){
*   조건식1,2가 거짓이고, 조건식3이 참일 때 실행내용3
* }else{
*    위의 조건들이 모두 거짓일 때 실행할 내용
* }
*/
public void testThreeMax(){
/* 3개의 정수를 입력받아
* 3수중 가장 큰 수를 알아내어 출력
*/
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 정수 : ");
int first = sc.nextInt();
System.out.print("두번째 정수 : ");
int second = sc.nextInt();
System.out.print("세번째 정수 : ");
int third = sc.nextInt();
int max;  //가장 큰 값 기록할 변수
if(first > second && first > third)
max = first;
else if(second > third)
max = second;
else
max = third;
System.out.println("가장 큰 값 : " + max);
}
/* 키보드로 점수를 입력받아, 정수변수에 저장
   단, 점수는 반드시 0 이상의 값이여야 함.
      다중 if문으로 점수가 90 이상이면 문자변수에 'A' 대입
80 이상 90 미만 'B'
70 이상 80 미만 'C'
60 이상 70 미만 'D'
60 미만 'F' 대입함
      점수와 학점 출력 확인
      점수가 0미만이면 "잘못 입력하셨습니다." 출력
*/
public void testScoreGrade(){
System.out.print("점수 : ");
int score = new Scanner(System.in).nextInt();
char grade;
if(score >= 0){
if(score >= 90) grade = 'A';
else if(score >= 80) grade = 'B';
else if(score >= 70) grade = 'C';
else if(score >= 60) grade = 'D';
else  grade = 'F';
System.out.println(score + " => "
+ grade);
}else{
System.out.println("잘못 입력하셨습니다.");
}
}
/* 문자를 하나 입력받아, 
* 영문대문자이면 "Upper" 라고 출력하고,
* 영문소문자이면 "Lower" 라고 출력하고,
* 숫자문자이면 "Number" 라고 출력하고,
* 그 외의 문자이면 "Others" 라고 출력
*/
public void testCharacter(){
System.out.print("문자 하나 입력 : ");
char ch = new Scanner(System.in).next().charAt(0);
if(ch >= 'A' && ch <= 'Z')
System.out.println("Upper");
else if(ch >= 'a' && ch <= 'z')
System.out.println("Lower");
else if(ch >= '0' && ch <= '9')
System.out.println("Number");
else
System.out.println("Others");
}
/* 두 개의 정수를 입력받아, 두 수를 비교하여
* "A가 B보다 크다."
* "A와 B는 같다."
* "B가 A보다 크다." 중 하나가 출력되게 구현
*/
public void testTwoMaxEqual(){
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 정수 : ");
int first = sc.nextInt();
System.out.print("두번째 정수 : ");
int second = sc.nextInt();
if(first > second)
System.out.println(first + "가 " + 
second + "보다 크다.");
else if(first == second)
System.out.println(first + "와 " + 
second + "는 같다.");
else 
System.out.println(second + "가 " + 
first + "보다 크다.");
}
}

package logic.testloop;

import java.util.Scanner;

public class WhileSample {
//while 문 : 횟수가 정해지지 않은 반복에 주로 사용
public void printUniCode(){
//문자를 입력받아, 그 문자의 유니코드 출력
//계속 반복 실행되게 함
//반복을 종료하고 싶으면, '0' 입력
Scanner sc = new Scanner(System.in);
System.out.print("문자 하나 입력 : ");
//char ch = sc.next().charAt(0);
char ch;
//while(ch != '0'){
//while((ch = sc.next().charAt(0)) != '0'){
for( ; (ch = sc.next().charAt(0)) != '0'; ){
System.out.println(ch + " is code " + 
(int)ch);
System.out.print("문자 하나 입력 : ");
//ch = sc.next().charAt(0);
}
System.out.println("Bye Bye!!");
}
public void printUniCode2(){
//문자를 입력받아, 그 문자의 유니코드 출력
//계속 반복 실행되게 함
//반복을 종료하고 싶으면, '0' 입력
Scanner sc = new Scanner(System.in);
char ch;
while(true){
System.out.print("문자 하나 입력 : ");
ch = sc.next().charAt(0);
if(ch == '0') break;
System.out.println(ch + " is code " + 
(int)ch);
}
System.out.println("Bye Bye!!");
}
//문자열을 입력받고, 문자하나 입력받고
//문자열 안에서 입력된 문자가 몇개인지 글자갯수를 출력
//문자열입력 : apple
//찾을 문자 : p
//글자갯수 : 2
public void stringLength(){
Scanner sc = new Scanner(System.in);
System.out.print("문자열 입력 : ");
String value = sc.next();
System.out.print("찾을 문자 : ");
char find = sc.next().charAt(0);
int index = 0, count = 0;
/*while(index < value.length()){
char ch = value.charAt(index);
if(find == ch)
count++;
index++;
}*/
while(index < value.length()){
if(find == value.charAt(index++))
count++;
}
System.out.println(value + "에 포함된 " + find 
+ "문자의 갯수는 " + count + "개");
}
}

package logic.testloop;

import java.util.Scanner;

import home.menu.CashBurgerKing;

public class DoWhileSample {
//do{ 반복시킬 내용 }while(조건식);
//일단 한 번 실행시키고, 반복을 결정하고자 할 때 사용
//멤버변수(Field) == 전역(Global)변수
private Scanner sc = new Scanner(System.in);
public void printUniCode(){
char ch;  //지역변수
do{
System.out.print("문자 하나 입력[0 입력시 종료] : ");
ch = sc.next().charAt(0);
if(ch == '0')
break;
System.out.println(ch + " is unicode " + (int)ch);
//}while(ch != '0');
}while(true);
System.out.println("The End!");
}
public void displayMenu(){
int no;
ForSample fsamp = new ForSample();
do{
System.out.println("\n\n*** 제어문 연습 ***\n");
System.out.println("1. 여러줄 별 출력하기");
System.out.println("2. 양수일 때만 별 출력하기");
System.out.println("3. 햄버거 주문하기");
System.out.println("4. 문자열에서 문자 찾기");
System.out.println("5. 끝내기");
System.out.print("번호 입력 : ");
no = sc.nextInt();
switch(no){
case 1: fsamp.printNumberStar2();
break;
case 2: fsamp.printStar();
break;
case 3: new CashBurgerKing().selectMenu();
break;
case 4: new WhileSample().stringLength();
break;
case 5: System.out.print("\n정말로 끝내시겠습니까?(y/n) : ");
char answer = sc.next().toUpperCase().charAt(0);
if(answer == 'Y')
return;
break;
default: System.out.println("잘못 입력하셨습니다.");
        System.out.println("다시 입력하십시오.\n");
}
//}while(no != 5);
}while(true);
//System.out.println("\n제어문 연습 프로그램을 종료합니다.");
}
}

package logic.testloop;

import java.util.Scanner;

public class ForSample {
public void testFor1(){
/*System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
System.out.println(5);
System.out.println(6);
System.out.println(7);
System.out.println(8);
System.out.println(9);
System.out.println(10);*/
//횟수가 정해진 반복 처리에는 for 사용을 권장함
/*for(int k = 1; k < 101; k++){
System.out.println(k);
}*/
int k = 1;
while(k < 101){
System.out.println(k);
k++;
}
}
//정수를 하나 입력받아, 그 수의 구구단을 출력
//정수입력 : 3
/*
* 3 * 1 = 3
* 3 * 2 = 6
* 3 * 3 = 9
* 3 * 4 = 12
* 3 * 5 = 15
* 3 * 6 = 18
* 3 * 7 = 21
* 3 * 8 = 24
* 3 * 9 = 27
* */
public void gugudan(){
System.out.print("정수 입력 : ");
int dan = new Scanner(System.in).nextInt();
/*System.out.println(dan + " * 1 = " + (dan * 1));
System.out.println(dan + " * 2 = " + (dan * 2));
System.out.println(dan + " * 3 = " + (dan * 3));
System.out.println(dan + " * 4 = " + (dan * 4));
System.out.println(dan + " * 5 = " + (dan * 5));
System.out.println(dan + " * 6 = " + (dan * 6));
System.out.println(dan + " * 7 = " + (dan * 7));
System.out.println(dan + " * 8 = " + (dan * 8));
System.out.println(dan + " * 9 = " + (dan * 9));*/
for(int su = 1; su < 10; su++)
System.out.println(dan + " * " + su + " = "
+ (dan * su));
}
//1부터 100까지 정수들의 합계를 구해서 출력
//1+2+3+....+100=5050
public void sum1To100(){
int sum = 0;
for(int k = 1; k < 101; k++){
if(k < 100)
System.out.print(k + "+");
else
System.out.println(k);
sum += k; //sum = sum + k;
}
System.out.println("1 ~ 100까지 정수들의 합 : " + sum);
}


//정수 두 개를 입력받아, 두 수중 작은값에서 큰 값까지의
//정수들의 합계를 구해서 출력
// 13과 7 입력시, 7+8+9+10+11+12+13=합계
public void sumMinToMax(){
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 정수 : ");
int first = sc.nextInt();
System.out.print("두번째 정수 : ");
int second = sc.nextInt();
int min, max;
if(first > second){
max = first;
min = second;
}else{
max = second;
min = first;
}
int sum = 0;
for(int k = min; k <= max; k++){
if(k < max)
System.out.print(k + "+");
else
System.out.println(k);
sum += k;
}
System.out.println(min + " ~ " + max + 
"까지 정수들의 합 : " + sum);
}
//1~100사이의 짝수들의 합계를 구하여 출력
//2+4+...+100=합계
public void sum1To100Even(){
int sum = 0;
/*for(int k = 1; k < 101; k++){
if(k % 2 == 0){
System.out.print(k + "+");
sum += k;
}
}*/
for(int k = 2; k < 101; k+=2){
System.out.print(k + "+");
sum += k;
}
System.out.println();
System.out.println("1 ~ 100까지 짝수들의 합 : "
+ sum);
}
//한자리 정수를 입력받아, 1~100사이의 값중
//입력받은 수의 배수들만 합계를 구하여 출력
public void sumNumber(){
System.out.print("정수 하나 입력 : ");
int num = new Scanner(System.in).nextInt();
int sum = 0;
for(int k = 1; k < 101; k++){
if(k % num == 0){
System.out.print(k + "+");
sum += k;
}
}
System.out.println();
System.out.println("1 ~ 100까지 " +
num + "배수들의 합 : "
+ sum);
}

//이중 for문 테스트용
public void testDoubleFor(){
//콘솔에 '*' 문자 출력
// **********
/*System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.print("*");*/
/*
* **********
*  **********
*  **********
*  **********
*  **********
*/
/*int count = 1;
for( ; count < 11; count++){
System.out.print("*");
}
System.out.println();
//System.out.println(count);
for(count = 1; count < 11; count++){
System.out.print("*");
}
System.out.println();
for(count = 1; count < 11; count++){
System.out.print("*");
}
System.out.println();
for(count = 1; count < 11; count++){
System.out.print("*");
}
System.out.println();
for(count = 1; count < 11; count++){
System.out.print("*");
}
System.out.println();*/
for(int row = 1; row < 6; row++){
for(int count = 1; count < 11; count++){
System.out.print("*");
}
System.out.println();
}
}
//구구단 2단~9단까지 출력
public void gugudan2To9(){
/* 2단 출력
* 2 * 1 = 2
* 2 * 2 = 4
* 2 * 3 = 6
* 2 * 4 = 8
* 2 * 5 = 10
* 2 * 6 = 12
* 2 * 7 = 14
* 2 * 8 = 16
* 2 * 9 = 18
* */
for(int dan = 2; dan < 10; dan++){
for(int su = 1; su < 10; su++){
System.out.println(dan + " * " + su + 
" = " + (dan * su));
}
System.out.println();
}
}
/* 12345
* 12345
* 12345
* 12345
* 12345
*/
public void printMultiNumber(){
for(int n = 1; n < 6; n++){
for(int m = 1; m < 6; m++){
System.out.print(m);
}
System.out.println();
}
}
/* 12345
* 23456
* 34567
* 45678
* 56789
*/
public void printMultiNumber2(){
for(int n = 1; n < 6; n++){
for(int m = n; m < (n + 5); m++){
System.out.print(m);
}
System.out.println();
}
}
/* 1****
* *2***
* **3**
* ***4*
* ****5
*/
public void printNumberStar(){
for(int line = 1; line < 6; line++){
for(int num = 1; num < 6; num++){
if(line == num)
System.out.print(line);
else
System.out.print("*");
}
System.out.println();
}
}
/* 1
* *2
* **3
* ***4
* ****5
*/
public void printNumberStar2(){
for(int line = 1; line < 6; line++){
for(int num = 1; num < (line + 1); num++){
if(line == num)
System.out.print(line);
else
System.out.print("*");
}
System.out.println();
}
}
/*정수를 하나 입력받아, 그 수가 양수일 때만
입력된 수를 줄 수로 적용하여 다음과 같이 출력되게 함
음수 또는 0이 입력되면 "양수가 아닙니다." 출력
* 줄수 입력 : 5
* *****
* ****
*   ***
*    **
*     *
*/
public void printStar(){
System.out.print("줄수 입력 : ");
int line = new Scanner(System.in).nextInt();
if(line > 0){
for(int row = 1; row <= line; row++){
for(int col = 1; col <= line; col++){
if(row > col)
System.out.print(" ");
else
System.out.print("*");
}
System.out.println();
}
}else{
System.out.println("양수가 아닙니다.");
}
}
}

package test.run;

import java.util.Scanner;

public class TestBreak {

public void breakSample1(){
//1~10사이의 임의의 난수를 발생시키고,
//키보드로 임의의 정수를 입력받아,
//난수의 값을 알아맞히는 코드 구현
//난수 : 7
//입력값 : 3
//틀렸습니다. 3보다 큽니다.
//맞았습니다. 2번만에 맞히셨습니다.
int num = (int)(Math.random() * 10) + 1;
Scanner sc = new Scanner(System.in);
int count = 1;
System.out.println("숫자 알아맞추기 게임 ****\n");
while(true){
System.out.print("입력 : ");
int findNum = sc.nextInt();
if(num == findNum){
System.out.println("\n맞았습니다.");
System.out.println(count + "번만에 맞히셨습니다.");
break; //해당 반복문을 빠져나가라. 강제종료
}else{
System.out.println("틀렸습니다.");
if(num > findNum)
System.out.println(findNum + "보다 큽니다.");
else
System.out.println(findNum + "보다 작습니다.");
count++;
}
} //while close
System.out.println("숫자 알아맞추기 게임 종료.....");
}
public void nameBreak(){
Loop1: for(int i = 2; i <= 9; i++){
for(int j = 1; j <= 9; j++){
if(j == 5)
break Loop1;
System.out.println(i + " * " + j + 
" = " + (i * j));
}
}
}
public static void main(String[] args) {
// break문 테스트용
TestBreak test = new TestBreak();
//test.breakSample1();
test.nameBreak();
}

}

package test.run;

public class TestContinue {
public void continueSample(){
for(int k = 1; k < 11; k++){
if(k % 3 == 0)
continue;  //이하 내용은 생략하고 증감식으로 가라.
System.out.println(k);
}
}
public void jumpGugudan(){
//구구단 출력
//구구단의 단수 입력받고, 
//임의의 한 자리 정수도 입력받아서
//구구단의 계산결과값이 입력된 수의 배수인 경우
//제외하고 출력시킴
//단수 : 3
//제외할 결과배수 : 9
//3 * 1 = 3
//3 * 2 = 6
//3 * 4 = 12
//3 * 5 = 15
//3 * 7 = 21
//3 * 8 = 24
java.util.Scanner sc = new java.util.Scanner(System.in);
System.out.print("구구단수 : ");
int dan = sc.nextInt();
System.out.print("제외할 배수 : ");
int jumpNum = sc.nextInt();
for(int su = 1; su < 10; su++){
int result = dan * su;
if(result % jumpNum == 0)
continue;
System.out.println(dan + " * " + su 
+ " = " + result);
}
}

public static void main(String[] args) {
// continue 문 연습
//new TestContinue().continueSample();
new TestContinue().jumpGugudan();
}

}

package test.run;

import java.util.Random;

public class TestRandom {

/*public static void main(String[] args) {
// 임의의 난수 발생 테스트
double num = Math.random();
System.out.println("난수 : " + num);
Random r = new Random();
System.out.println("boolean : " + r.nextBoolean());
System.out.println("int : " + r.nextInt());
System.out.println("double : " + r.nextDouble());
}*/
public static void main(String[] args){
//Math.random() 사용
//1 ~ 100 사이의 임의의 정수 발생
int num = (int)(Math.random() * 100) + 1;
System.out.println("num : " + num);
int num2 = new Random().nextInt(100) + 1;
//0 ~ 99 사이의 값 발생 + 1 => 1~100
System.out.println("num2 : " + num2);
//51~100 사이의 값 발생
//(int)(Math.random() * (최대값-최소값+1)) + 최소값
int num3 = (int)(Math.random() * 50) + 51;
System.out.println("num3 : " + num3);
int num4 = new Random().nextInt(50) + 51;
System.out.println("num4 : " + num4);
}

}

package home.menu;

import java.util.Scanner;

public class CashBurgerKing {
public void selectMenu() {
// 실습문제 3
Scanner sc = new Scanner(System.in);
int menuNo, account = 0, price = 0, totalPrice = 0;
String orderItem = "", orderList = "";
char continueAnswer;

do {
continueAnswer = 'N';

System.out.println("*** 메뉴를 선택하세요 ***");
System.out.println();
System.out.println("햄버거 ***************");
System.out.println("1. 불고기버거 3500원");
System.out.println("2. 치킨버거     3200원");
System.out.println("추가 ****************");
System.out.println("3. 감자튀김     1000원");
System.out.println("4. 치즈스틱     400원");
System.out.println("5. 샐러드 2000원");
System.out.println("음료수 ***************");
System.out.println("6. 콜라 700원");
System.out.println("7. 에이드 1200원");
System.out.println("8. 커피 1000원");
System.out.println("********************");
System.out.print("메뉴 선택 : ");
menuNo = sc.nextInt();

switch (menuNo) {
case 1:
orderItem = "불고기버거";
price = 3500;
break;
case 2:
orderItem = "치킨버거";
price = 3200;
break;
case 3:
orderItem = "감자튀김";
price = 1000;
break;
case 4:
orderItem = "치즈스틱";
price = 400;
break;
case 5:
orderItem = "샐러드";
price = 2000;
break;
case 6:
orderItem = "콜라";
price = 700;
break;
case 7:
orderItem = "에이드";
price = 1200;
break;
case 8:
orderItem = "커피";
price = 1000;
break;
default:
System.out.println("없는 항목을 선택하였습니다.");
System.out.println("다시 주문하십시오.");
continueAnswer = 'Y';
} // switch closed
if (continueAnswer == 'Y')
continue;

System.out.println(orderItem + "를 선택하셨습니다.");
System.out.print("수량은 ? ");
account = sc.nextInt();
System.out.println(account + "개 주문하셨습니다.");

// ** 계산된 가격은 계속 저장되어 있음 **
int total = price * account; // 계산 처리됨
orderList += orderItem + " : " + account + "개 - " + total + "원 \n";
totalPrice += total; // 주문한 가격 합산 처리

System.out.print("추가 주문하시겠습니까?(y/n) : "); // y 입력시 메뉴화면 반복실행됨
continueAnswer = sc.next().toUpperCase().charAt(0);

} while (continueAnswer == 'Y');

System.out.println("* 주문하신 정보는 다음과 같습니다. *");
System.out.println("-----------------------------------------------");
System.out.print(orderList);
System.out.println("------------------------------------------------");
System.out.println("총 가격 : " + totalPrice + "원");
}
}

------------------------------------------------------------------------------------------------------------------------------------

package silsub.sample;

import java.util.Scanner;

public class Munjae {
// 문제 1
public void test1() {
Scanner sc = new Scanner(System.in);
System.out.print("국어 : ");
int kor = sc.nextInt();
System.out.print("영어 : ");
int eng = sc.nextInt();
System.out.print("수학 : ");
int mat = sc.nextInt();

int tot = kor + eng + mat;
int avg = tot / 3;

if (kor >= 40 && eng >= 40 && 
mat >= 40 && avg >= 60) {
System.out.println("국어 : " + kor + 
", 영어 : " + eng + 
", 수학 : " + mat);
System.out.println("총점 : " + tot + 
", 평균 : " + avg);
} else
System.out.println("불합격");
}

// 문제 2
public void test2() {
Scanner sc = new Scanner(System.in);
System.out.println("*** 초기 메뉴 *** \n");
System.out.println("1. 입력");
System.out.println("2. 수정");
System.out.println("3. 조회");
System.out.println("4. 삭제");
System.out.println("7. 종료");
System.out.print("메뉴번호 입력 : ");
int no = sc.nextInt();

/*if(no == 1)
System.out.println("입력메뉴가 선택되었습니다.");
else if(no == 2)
System.out.println("수정메뉴가 선택되었습니다.");
else if(no == 3)
System.out.println("조회메뉴가 선택되었습니다.");
else if(no == 4)
System.out.println("삭제메뉴가 선택되었습니다.");
else if(no == 7)
System.out.println("프로그램이 종료됩니다.");
else{
System.out.println("번호가 잘못 입력되었습니다.");
System.out.println("다시 입력하십시오.");
}*/
switch(no){ //no 변수의 값이 뭐냐?
case 1: //no == 1
System.out.println("입력메뉴가 선택되었습니다.");
break;
case 2:
System.out.println("수정메뉴가 선택되었습니다.");
break;
case 3:
System.out.println("조회메뉴가 선택되었습니다.");
break;
case 4:
System.out.println("삭제메뉴가 선택되었습니다.");
break;
case 7:
System.out.println("프로그램이 종료됩니다.");
break;
default:  //위의 제시된 값이 모두 아닐 때
System.out.println("번호가 잘못 입력되었습니다.");
System.out.println("다시 입력하십시오.");
} //switch close
}

// 문제 3
public void test3() {
Scanner sc = new Scanner(System.in);
System.out.print("정수 하나 입력 : ");
int num = sc.nextInt();

if (num > 0)
System.out.println("양수다.");
else
System.out.println("양수가 아니다.");
}

// 문제 4
public void test4() {
Scanner sc = new Scanner(System.in);
String result;
int num;

System.out.print("정수 하나 입력 : ");
num = sc.nextInt();

if (num > 0) { // 양수일때만
if (num % 2 == 0)
result = "짝수다.";
else
result = "홀수다.";

System.out.println(num + "은 " + result);
}
}

// 문제 5
public void test5() {
Scanner sc = new Scanner(System.in);
String name;
int age;
double ki;

System.out.print("이름 : ");
name = sc.nextLine();
System.out.print("나이 : ");
age = sc.nextInt();
System.out.print("키 : ");
ki = sc.nextDouble();

if (name != null && name.length() > 0 
&& age > 0 && ki > 0)
System.out.println(name + "의 나이는 "
+ age + "세이고, 키는 " + 
ki + "cm 이다.");
}

// 문제 6
public void test6() {
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 정수 : ");
int first = sc.nextInt();
System.out.print("두번째 정수 : ");
int second = sc.nextInt();

if (first > 0 && second > 0) { // 둘 다 양수일 때만
System.out.println(first + " + " + second + " = " + (first + second));
System.out.println(first + " - " + second + " = " + (first - second));
System.out.println(first + " * " + second + " = " + (first * second));
System.out.println(first + " / " + second + " = " + (first / second));
System.out.println(first + " % " + second + " = " + (first % second));
}
}

// 문제 7
public void test7() {
Scanner sc = new Scanner(System.in);
char grade;

System.out.print("점수 : ");
int score = sc.nextInt();

if (score >= 0) { // 점수가 0 이상일 때만
if (score >= 90)
grade = 'A';
else if (score >= 80)
grade = 'B';
else if (score >= 70)
grade = 'C';
else if (score >= 60)
grade = 'D';
else
grade = 'F';

System.out.println("점수 : " + score + ", 학점 : " + grade);
}
}
}

package com.loop;

import java.util.Scanner;

public class ForWhile {
private Scanner sc = new Scanner(System.in);
//문제1
public void printStar1(){
System.out.println("정수 입력 : ");
int star = sc.nextInt();
for(int line = 1; line < star + 1; line++){
for(int num = 1; num < (line + 1); num++){
if(line == num)
System.out.print(line);
else
System.out.print("*");
}
System.out.println();
}
}
//문제2
public void printStar2(){
System.out.print("줄수 입력 : ");
int line = new Scanner(System.in).nextInt();
if(line > 0){
for(int row = 1; row <= line; row++){
for(int col = 1; col <= line; col++){
if(col > row)
System.out.print(" ");
else
System.out.print("*");
}
System.out.println();
}
}else if(line < 0){
for(int row1 = 1; row1 <= line * -1; row1++){
for(int col1 = 1; col1 <= line * -1; col1++){
if(row1 > col1)
System.out.print(" ");
else
System.out.print("*");
}
System.out.println();
}
}else System.out.println("출력 기능이 없습니다.");
}
//문제3
public void selectMenu(){
int menuNo, account = 0, price = 0, totalPrice = 0;
String orderItem = "", orderList = "";
char continueAnswer;

do {
continueAnswer = 'N';

System.out.println("*** 메뉴를 선택하세요 ***");
System.out.println();
System.out.println("햄버거 ***************");
System.out.println("1. 불고기버거 3500원");
System.out.println("2. 치킨버거     3200원");
System.out.println("추가 ****************");
System.out.println("3. 감자튀김     1000원");
System.out.println("4. 치즈스틱     400원");
System.out.println("5. 샐러드 2000원");
System.out.println("음료수 ***************");
System.out.println("6. 콜라 700원");
System.out.println("7. 에이드 1200원");
System.out.println("8. 커피 1000원");
System.out.println("********************");
System.out.print("메뉴 선택 : ");
menuNo = sc.nextInt();

switch (menuNo) {
case 1:
orderItem = "불고기버거";
price = 3500;
break;
case 2:
orderItem = "치킨버거";
price = 3200;
break;
case 3:
orderItem = "감자튀김";
price = 1000;
break;
case 4:
orderItem = "치즈스틱";
price = 400;
break;
case 5:
orderItem = "샐러드";
price = 2000;
break;
case 6:
orderItem = "콜라";
price = 700;
break;
case 7:
orderItem = "에이드";
price = 1200;
break;
case 8:
orderItem = "커피";
price = 1000;
break;
default:
System.out.println("없는 항목을 선택하였습니다.");
System.out.println("다시 주문하십시오.");
continueAnswer = 'Y';
if (continueAnswer == 'Y')
continue;

System.out.println(orderItem + "를 선택하셨습니다.");
System.out.print("수량은 ? ");
account = sc.nextInt();
System.out.println(account + "개 주문하셨습니다.");

int total = price * account; 
orderList += orderItem + " : " + account + "개 - " 
                 + total + "원 \n";
totalPrice += total; 

System.out.print("추가 주문하시겠습니까?(y/n) : "); 
continueAnswer = sc.next().toUpperCase().charAt(0);

} while (continueAnswer == 'Y');

System.out.println("* 주문하신 정보는 다음과 같습니다. *");
System.out.println("-----------------------------------------------");
System.out.print(orderList);
System.out.println("------------------------------------------------");
System.out.println("총 가격 : " + totalPrice + "원");
}
//문제 4
public void countInputCharacter(){
System.out.print("문자열 입력[영문자만 입력 가능] : ");
    String value = sc.next(); 
    System.out.print("문자 하나 입력 : ");
    char find = sc.next().charAt(0);
int index = 0, count = 0;
for(int i = 0; i<value.length(); i++) {
if(value.toUpperCase().charAt(i) >= 'A' &&
value.toUpperCase().charAt(i) <= 'Z') {
if(find == value.charAt(index++)){
count++;
}
}else{
System.out.println("영문자가 아닙니다.");
return;
}
}
System.out.println(value + "에서" + find + "의 갯수" + count + "개");
}
}

-------------------------------------------------------------------------------------------------------------------------

package logic.view;

import java.util.Scanner;

import logic.controller.Function;

public class Menu {
//메뉴 제공 클래스
private static Scanner sc = new Scanner(System.in);
public static void displayMenu(){
do{
System.out.println("\n*** 지역변수/연산자/제어문 연습 프로그램 ***\n");
System.out.println("1. 간단 계산기 ");
System.out.println("2. 작은수에서 큰수까지 합계구하기");
System.out.println("3. 신상정보 확인하기");
System.out.println("4. 학생정보 확인하기");
System.out.println("5. 별과 숫자 출력하기");
System.out.println("6. 난수까지의 합게 구하기");
System.out.println("7. 구구단");
System.out.println("8. 주사위 숫자 알아맞추기 게임");
System.out.println("9. 프로그램 종료");
System.out.println("메뉴 번호 입력 : ");
int menu = sc.nextInt(); //메뉴 선택내용 저장 변수
switch(menu){
case 1: new Function().calculator();
break;
case 2: new Function().totalCalculator();
break;
case 3: new Function().profile();
break;
case 4: new Function().sungjuk();
break;
case 5: new Function().printStarNumber();
break;
case 6: new Function().sumRandomNumber();
break;
case 7: new Function().continueGugudan();
break;
case 8: new Function().shutNumber();
break;
case 9: System.out.println("메뉴 프로그램을 정말 종료하시겠습니까?[Y/N]");
char yn = sc.next().toUpperCase().charAt(0); //yes/no 입력값 저장해 소문자일 경우 대문자로 바꿈
if(yn == 'Y')
return;
break;
default: System.out.println("잘못 입력하셨습니다.");
System.out.println("다시 입력하십시오.");
}
}while(true);
}
}


package logic.controller;

import java.util.Scanner;

import org.omg.Messaging.SyncScopeHelper;

public class Function {
//기능 제공 클래스
private Scanner sc = new Scanner(System.in);
public void calculator(){ //간단계산기
int total =0; //연산결과 저장
System.out.println("\n1. 간단계산기");
System.out.println("첫번째 정수 입력 : ");
int first = sc.nextInt();
System.out.println("두번째 정수 입력 : ");
int second = sc.nextInt();
System.out.println("연산문자 입력 : ");
char ch = sc.next().charAt(0);
switch(ch){
case '+': total = first + second;
break;
case '-': total = first - second;
break;
case '*': total = first * second;
break;
case '/': if(second == 0){ 
System.out.println("0으로 나눌 수 없습니다.\n");
total = 0;
}else total = first / second;
break;
}
System.out.println("결과 : " + first + ch + second + " = " + total + "\n");
}
public void totalCalculator(){ //작은수에서 큰수까지 합계구하기
System.out.println("\n2. 작은수에서 큰수까지 합계구하기");
System.out.println("첫번째 정수 : ");
int first = sc.nextInt();
System.out.println("두번째 정수 : ");
int second = sc.nextInt();
int min, max; //작은값, 큰값 저장할 변수
if(first > second){
max = first;
min = second;
}else {
max = second;
min = first; 
}
int total = 0;
for(int num = min; num <= max ; num++){
if(num < max)
System.out.print(num + " + ");
else
System.out.print(num);
total += num;
}
System.out.println(min + " 부터 " + max + "까지 정수들의 합계 : " + total + "\n");
}
public void profile(){//신상정보 확인하기
System.out.println("\n3. 신상정보 확인하기");
String name = "김영미";
int age = 26;
String gender = "여자";
String cter = "무던하고 무덤덤함";
System.out.println("이름 : " + name);
System.out.println("나이 : " + age);
System.out.println("성별 : " + gender);
System.out.println("성격 : " + cter + "\n");
}
public void sungjuk(){ //학생 정보 확인하기
System.out.println("\n4. 학생정보 확인하기");
System.out.println("학생이릅 입력 : ");
String name = sc.next();
System.out.println("학년 입력 : ");
int grade = sc.nextInt();
System.out.println("반 입력 : ");
int clas = sc.nextInt();
System.out.println("번호 입력 : ");
int number = sc.nextInt();
System.out.println("성별 입력 (M/F) : ");
char mf = sc.next().toUpperCase().charAt(0); //입력 값 소문자 => 대문자로 변환
String mf1 = (mf == 'M')? "남학생": "여학생"; 
System.out.println("성적 입력 : ");
double score = sc.nextDouble(); 
score = (int)(score * 100) / 100d; 
char score1; //학점 담을 변수
if(score >= 90) score1 = 'A';
else if(score >= 80) score1 = 'B';
else if(score >= 70) score1 = 'C';
else if(score >= 60) score1 = 'D';
else score1 = 'F';
System.out.println(grade + "학년 " + clas + "반 " + mf1 + " "
+ name + "의 점수는 " + score + "이고 " + score1 + " 학점입니다.\n");
//성적 (double) //소숫점 아래 둘째자리까지 입력받음
}
public void printStarNumber(){//별과 숫자 출력하기
System.out.println("\n5. 별과 숫자 출력하기");
System.out.println("정수 입력 : ");
int inp = sc.nextInt();
if(inp > 0){
for(int line = 1; line < inp + 1; line++){
for(int num = 1; num < (line + 1); num++){
if(line == num)
System.out.print(line);
else
System.out.print("*");
}
System.out.println();
}
}else System.out.println("양수가 아닙니다.\n");
}
public void sumRandomNumber(){//난수까지의 합계 구하기
System.out.println("\n6. 난수까지의 합게 구하기");
int num = (int)(Math.random() * 100) + 1; //난수 생성
int numt = 0; //난수 합계 담을 변수
System.out.println("생성된 난수 : " + num);
for(int n = 1 ; n < num + 1; n++){
if(n < num)
System.out.print(n + " + ");
else
System.out.println(n);
numt += n;
}
System.out.println("합계 : " +numt);
}
public void continueGugudan(){//구구단
System.out.println("\n7. 구구단");
System.out.print("정수 하나 입력 : ");
int num = sc.nextInt();
System.out.print("한자리 정수 입력 : ");
int a = sc.nextInt();
if(num > 0){
for(int k = 1; k < 10; k++){
int result = num * k;
if(result % a == 0)
continue;
System.out.println( num + "*" + k + "=" +result);
}
}else
System.out.println("양수가 아닙니다.");
}

public void shutNumber(){//주사위 숫자 알아맞추기 게임
System.out.println("\n8. 주사위 숫자 알아맞추기 게임");
int num = (int)Math.random();
int count = 1;
char yn;
System.out.println("숫자 알아맞추기 게임 ****\n");
do{
System.out.print("입력 : ");
int findNum = sc.nextInt();
if(num == findNum){
System.out.println("\n맞았습니다.");
System.out.println(count + "번만에 맞히셨습니다.\n");
break;
}else{
System.out.println("틀렸습니다.");
if(num > findNum)
System.out.println(findNum + "보다 큽니다.");
else
System.out.println(findNum + "보다 작습니다.");
count++;
}
System.out.println("계속 하시겠습니까?(y/n)");
yn = sc.next().toUpperCase().charAt(0);
}while(yn == 'Y'); 
System.out.println("숫자 알아맞추기 게임 종료.....\n");
}
}

---------------------------------------------------------------------------------------------------

package logic.home.view;

import java.util.Scanner;

import logic.home.model.BreakSample;
import logic.home.model.ContinueSample;
import logic.home.model.DoWhileSample;
import logic.home.model.ForSample;
import logic.home.model.IfSample;
import logic.home.model.NonStaticMethodSample;
import logic.home.model.PrimitiveTypeSample;
import logic.home.model.StaticMethodSample;
import logic.home.model.SwitchSample;
import logic.home.model.VariableSample;
import logic.home.model.WhileSample;

public class Menu {
static Scanner sc = new Scanner(System.in);
public static void mainMenu(){
do{
System.out.println("***** 프로그래밍 기본 기능 테스트 프로그램 *****\n");
System.out.println("1. 변수 테스트");
System.out.println("2. 기본 자료형 테스트");
System.out.println("3. if문 테스트");
System.out.println("4. switch문 테스트");
System.out.println("5. for문 테스트");
System.out.println("6. while문 테스트");
System.out.println("7. do~while문 테스트");
System.out.println("8. break문 테스트");
System.out.println("9. continue문 테스트");
System.out.println("10. static 메소드 사용 테스트");
System.out.println("11. non-static 메소드 사용 테스트");
System.out.println("12. 프로그램 종료");
System.out.println("메뉴 번호 입력 : ");
int inputmenu = sc.nextInt();
switch(inputmenu){
case 1: subVarMenu();
break;
case 2: subPTypeMenu();
break;
case 3: subIfMenu();
break;
case 4: subSwitchMenu();
break;
case 5: subForMenu();
break;
case 6: subWhileMenu();
break;
case 7: subDoWhileMenu();
break;
case 8: subBreakMenu();
break;
case 9: subContinueMenu();
break;
case 10: subStaticMethodMenu();
break;
case 11: subNonStaticMethodMenu();
break;
case 12:  System.out.println("정말로 종료하시겠습니까?(Y/N)");
  char esc = sc.next().toUpperCase().charAt(0);
  if(esc == 'Y') break; 
  else continue; 
 
default: System.out.println("잘못된 입력 입니다."); return;

}
}while(true);
}
//메뉴 메소드
public static void subVarMenu(){
VariableSample vsamp = new VariableSample();
 
do{
System.out.println("\n1. 변수 테스트");
System.out.println("*** 변수 테스트 부메뉴  ***\n");
System.out.println("1. 내 신상정보 변수에 담아 출력하기");
System.out.println("2. 사원정보를 키보드로 입력받아 출력하기");
System.out.println("3. 기본 자료형 변수의 초기값 확인하기");
System.out.println("4. 이전 메뉴로 가기");
System.out.println("메뉴 선택 : ");
int vmenu = sc.nextInt();
 
switch(vmenu){
case 1: vsamp.myProfile(); break; 
case 2: vsamp.empInformation(); break;
case 3: vsamp.defaultValue(); break;
case 4: System.out.println("메인 메뉴로 돌아갑니다."); return;  
default: System.out.println("잘못된 입력 입니다."); continue;
}
}while(true);
}
 
public static void subPTypeMenu(){

PrimitiveTypeSample psamp = new PrimitiveTypeSample();
 
do{
System.out.println("*** 기본자료형 테스트 부메뉴 ***");
System.out.println("1. 기본자료형 메모리 할당크기 확인하기");
System.out.println("2. 기본자료형 값의 최소값, 최대값 출력하기");
System.out.println("3. 기본자료형 비트갯수 확인하기");
System.out.println("4. 이전 메뉴로 가기");
System.out.println("메뉴 선택 : ");
int smenu = sc.nextInt();
 
switch(smenu){
case 1: psamp.typeSize(); break; 
case 2: psamp.minMaxValue(); break;
case 3: psamp. bitSize(); break;
case 4: System.out.println("메인 메뉴로 돌아갑니다.");
return;
default: continue;
}
}while(true);
}
public static void subIfMenu(){
IfSample isamp = new IfSample();
 
do{
System.out.println("*** if문 테스트 부메뉴 ***");
System.out.println("1. 두 개의 정수를 입력받아, 두 수중 큰 값 출력하기");
System.out.println("2. 두 개의 정수를 입력받아, 두 수중 작은 값 출력하기");
System.out.println("3. 세 개의 정수를 입력받아, 세 수중 가장 큰수와 가장 작은수 출력하기");
System.out.println("4. 한 개의 정수를 입력받아, 짝수인지 홀수인지 출력하기");
System.out.println("5. 국,영,수 세 과목의 점수를 입력받아, 합격/불합격 확인하기");
System.out.println("6. 점수를 입력받아, 학점 확인하기");
System.out.println("7. 한 개의 정수를 입력받아, 양수인지 0인지 음수인지 확인하기");
System.out.println("8. 문자 하나를 입력받아, 영어대문자인지 소문자인지 숫자문자인지 기타문자인지 확인하기");
System.out.println("9. 이전 메뉴로 가기");
System.out.println("메뉴 선택 : ");
int smenu = sc.nextInt();
 
switch(smenu){
case 1: isamp.maxNumber(); break;
case 2: isamp.minNumber(); break;
case 3: isamp.threeMaxMin(); break;
case 4: isamp.checkEven(); break;
case 5: isamp.isPassFail(); break;
case 6: isamp.scoreGrade(); break;
case 7: isamp.checkPlusMinusZero(); break;
case 8: isamp.whatCaracter(); break;
case 9: System.out.println("메인 메뉴로 돌아갑니다.");
return;
default: continue;
}
 
}while(true);
 
}
public static void subSwitchMenu(){
SwitchSample ssamp = new SwitchSample();
 
do{
System.out.println("*** switch문 테스트 부메뉴 ***");
System.out.println("1. 두 개의 정수와 한 개의 연산문자를 입력받아 계산한 결과 확인하기");
System.out.println("2. 과일이름을 문자열로 입력받아, 그 과일의 가격 출력하기");
System.out.println("3. 이전 메뉴로 가기");
System.out.println("메뉴 선택 : ");
int smenu = sc.nextInt();
 
switch(smenu){
case 1: ssamp.calculator(); break;
case 2: ssamp.fruitPrice(); break;
case 3: System.out.println("메인 메뉴로 돌아갑니다.");
return;
default: continue;
}
}while(true);
}
public static void subForMenu(){
ForSample fsamp = new ForSample();
do{
System.out.println("*** for문 테스트 부메뉴 ***");
System.out.println("1. 1~10까지 정수들의 합계 구하기");
System.out.println("2. 1~100사이의 짝수들의 합게 구하기");
System.out.println("3. 정수 하나 입력받아, 그 수의 구구단 출력하기");
System.out.println("4. 두 개의 정수를 입력받아, 두 수중 작은 값에서 큰 값까지의 합계 구하기");
System.out.println("5. 줄수와 칸수 입력받아, 입력된 줄수/칸수만큼 별표문자 출력하기");
System.out.println("6. 7줄에 7칸에 별표문자 출력하되, 각 줄에 줄번호와 같은 칸에 숫자 출력하기");
System.out.println("7. 줄수를 입력받아, 삼각형 모양으로 별표문자 출력하기(양수:직각삼각형, 음수:역삼각형)");
System.out.println("8. 구구단 2단부터 9단까지 출력하기");
System.out.println("9. 이전 메뉴로 가기");
System.out.println("메뉴 선택 : ");
int smenu = sc.nextInt();
 
switch(smenu){
case 1: fsamp.sum1To10(); break;
case 2: fsamp.sumEven1To100(); break;
case 3: fsamp.oneGugudan(); break;
case 4: fsamp.sumMinToMax(); break;
case 5: fsamp.printStar(); break;
case 6: fsamp.printNumberStar(); break;
case 7: fsamp.printTriangleStar(); break;
case 8: fsamp.guguDan(); break;
case 9: System.out.println("메인 메뉴로 돌아갑니다.");
return;
default: continue;
}
}while(true);
}
 
public static void subWhileMenu(){
WhileSample wsamp = new WhileSample();
do{
System.out.println("*** while문 테스트 부메뉴 ***");
System.out.println("1. 문자 하나 입력받아, 그 문자의 유니코드 출력 반복('0' 입력되면 반복종료)");
System.out.println("2. 1~100까지 정수들의 합계 출력하기(while 문으로 작성)");
System.out.println("3. 1~100사이의 임의의 정수를 발생시켜, 숫자 알아맞추기");
System.out.println("4. 문자열을 입력받아, 글자 갯수 알아내어 출력하기");
System.out.println("5. 문자열값과 문자 하나를 입력받아, 문자열에 문자가 몇 개 있는지 확인하기");
System.out.println("6. 이전 메뉴로 가기");
System.out.println("메뉴 선택 : ");
int smenu = sc.nextInt();
 
switch(smenu){
case 1: wsamp.printUniCode(); break;
case 2: wsamp.sum1To100(); break;
case 3: wsamp.numberGame(); break;
case 4: wsamp.countCharacter(); break;
case 5: wsamp.countInChar(); break;
case 6: System.out.println("메인 메뉴로 돌아갑니다.");
return;
default: continue;
}
}while(true);
}
public static void subDoWhileMenu(){
DoWhileSample dsamp = new DoWhileSample();
do{
System.out.println("*** do~while문 테스트 부메뉴 ***");
System.out.println("1. 문자열값 입력받아, 문자 사이에 '-' 끼워넣어 출력하기");
System.out.println("2. 버거킹 메뉴 주문 테스트");
System.out.println("3. 문자열 입력받아, 모든 글자 영문자다/영문자 아니다.출력하기");
System.out.println("4. 이전 메뉴로 가기");
System.out.println("메뉴 선택 : ");
int smenu = sc.nextInt();
 
switch(smenu){
case 1: dsamp.addDashToken(); break;
case 2: dsamp.burgerKingMenu(); break;
case 3: dsamp.isStringAlphabet(); break;
case 4: System.out.println("메인 메뉴로 돌아갑니다.");
return;
default: continue;
}
}while(true);
}
 
public static void subBreakMenu(){
BreakSample bsamp = new BreakSample();
do{
System.out.println("*** break문 테스트 부메뉴 ***");
System.out.println("1. 1~100까지 정수들의 합계 출력하기(break문 사용)");
System.out.println("2. 구구단 1단~9단까지 출력하되, * 5 계산에서 반복문 빠지기(break 이름 사용)");
System.out.println("3. 이전 메뉴로 가기");
System.out.println("메뉴 선택 : ");
int smenu = sc.nextInt();
 
switch(smenu){
case 1: bsamp.sumBreak(); break;
case 2: bsamp.guguDanBreak(); break;
case 3: System.out.println("메인 메뉴로 돌아갑니다.");
return;
default: continue;
}
}while(true);
}
 
public static void subContinueMenu(){
ContinueSample csamp = new ContinueSample();
do{
System.out.println("*** continue문 테스트 부메뉴 ***");
System.out.println("1. 1~100까지의 정수 중 3의 배수를 뺀 정수들의 합계 출력하기");
System.out.println("2. 3행 5열의 행열값 출력하되, 1행 3열부터 1행 5열까지 생략하고 출력하기");
System.out.println("3. 이전 메뉴로 가기");
System.out.println("메뉴 선택 : ");
int smenu = sc.nextInt();
 
switch(smenu){
case 1: csamp.sumJumpThree(); break;
case 2: csamp.rowColJump(); break;
case 3: System.out.println("메인 메뉴로 돌아갑니다.");
return;
default: continue;
}
}while(true);
}
 
public static void subStaticMethodMenu(){
StaticMethodSample mesamp = new StaticMethodSample();
 
do{
System.out.println("*** static 메소드 사용 테스트 부메뉴 ***");
System.out.println("1. Math 클래스의 랜덤값 구하는 메소드 : 1~45사이의 임의의 정수 출력");
System.out.println("2. Math 클래스의 실수값에 대한 절대값 구하는 메소드 : -12.77 절대값 출력하기");
System.out.println("3. Math 클래스의 두 정수중 큰값 구하는 메소드 : 120, 54 중 큰값 출력");
System.out.println("4. 이전 메뉴로 가기");
System.out.println("메뉴 선택 : ");
int smenu = sc.nextInt();
 
switch(smenu){
case 1: mesamp. testMathRandom(); break;
case 2: mesamp.testMathAbs(); break;
case 3: mesamp.testMathMax(); break;
case 4: System.out.println("메인 메뉴로 돌아갑니다.");
return;
default: continue; 
}
}while(true);
}
 
public static void subNonStaticMethodMenu(){
NonStaticMethodSample nsamp = new NonStaticMethodSample();
do{
System.out.println("*** non-static 메소드 사용 테스트 부메뉴 ***");
System.out.println("1. Scanner 클래스 사용 : 자료형 종류별로 값 입력받아 출력하기");
System.out.println("2. Date 클래스 사용 : 오늘 날짜, 현재 시간 정보 출력하기");
System.out.println("3. Random 클래스 사용 : 정수와 실수에 대한 난수 출력하기");
System.out.println("4. 이전 메뉴로 가기");
System.out.println("메뉴 선택 : ");
int smenu = sc.nextInt();
 
switch(smenu){
case 1: nsamp.testScanner(); break;
case 2: nsamp.testDate(); break;
case 3: nsamp.testRandom(); break;
case 4: System.out.println("메인 메뉴로 돌아갑니다.");
return;
default: continue;
}
}while(true);
}  
}

package logic.home.model;

import java.util.Scanner;

public class ForSample {
private Scanner sc = new Scanner(System.in);
public void sum1To10(){
//1~10까지 정수들의 합계 구하기
int sum = 0;
for(int k = 1; k < 11; k++){

if(k < 10) System.out.print(k + "+");
else System.out.println(k);
sum += k;

}

System.out.println("1 ~ 10까지 정수들의 합 : " + sum);
}
public void sumEven1To100(){
//2. 1~100사이의 짝수들의 합계 구하기
int sum = 0;

for(int k = 2; k < 101; k+=2){
System.out.print(k + "+");
sum += k;
}
System.out.println();
System.out.println("1 ~ 100까지 짝수들의 합 : " + sum);
  }
public void oneGugudan(){
//3. 정수 하나 입력받아, 그 수의 구구단 출력하기
System.out.println("정수 입력 : ");
int dan = sc.nextInt();
for(int su = 1; su < 10; su++)
System.out.println(dan + " * " + su + " = " + (dan * su));
  }
public void sumMinToMax(){
//4. 두 개의 정수를 입력받아, 두 수중 작은 값에서 큰 값까지의 합계 구하기
System.out.print("첫번째 정수 : ");
int first = sc.nextInt();
System.out.print("두번째 정수 : ");
int second = sc.nextInt();
int min, max;
if(first > second){
max = first;
min = second;
}else{
max = second;
min = first;
}
int sum = 0;

for(int k = min; k <= max; k++){
if(k < max) System.out.print(k + "+");
else System.out.println(k);
sum += k;

}
System.out.println(min + " ~ " + max + "까지 정수들의 합 : " + sum);
}
/*다시봐야함*/public void printStar(){
//5. 줄수와 칸수 입력받아, 입력된 줄수/칸수만큼 별표문자 출력하기
System.out.print("줄수 입력 : ");
int line = new Scanner(System.in).nextInt();
if(line > 0){
for(int row = 1; row <= line; row++){
for(int col = 1; col <= line; col++){
if(row > col)
System.out.print(" ");
else
System.out.print("*");
}
System.out.println();
}
}else{
System.out.println("양수가 아닙니다.");
}
}
public void printNumberStar(){
//6. 7줄에 7칸에 별표문자 출력하되, 각 줄에 줄번호와 같은 칸에 숫자 출력하기
for(int line = 1; line < 8; line++){
for(int num = 1; num < (line + 1); num++){
if(line == num) System.out.print(line);
else System.out.print("*");
}
System.out.println();
}
}
public void printTriangleStar(){
//7. 줄수를 입력받아, 삼각형 모양으로 별표문자 출력하기(양수:직각삼각형, 음수:역삼각형)
/* 정수를 하나 입력받아, 그 수가 양수일 때만

입력된 수를 줄 수로 적용하여 다음과 같이 출력되게 함

음수 또는 0이 입력되면 "양수가 아닙니다." 출력


* 줄수 입력 : 5

* *****

* ****

*   ***

*    **

*     *


public void printStar(){

System.out.print("줄수 입력 : ");

int line = new Scanner(System.in).nextInt();


if(line > 0){

for(int row = 1; row <= line; row++){

for(int col = 1; col <= line; col++){

if(row > col)

System.out.print(" ");

else

System.out.print("*");

}

System.out.println();

}

}else{

System.out.println("양수가 아닙니다.");

}

}*/
}
public void guguDan(){
//8. 구구단 2단부터 9단까지 출력하기
for(int dan = 2; dan < 10; dan++){
for(int su = 1; su < 10; su++){
System.out.println(dan + " * " + su + " = " + (dan * su));
}
System.out.println();

}
}

}

package logic.home.model;

import java.util.Scanner;

public class IfSample {
private Scanner sc = new Scanner(System.in);
  public void maxNumber(){ 
  //1. 두 개의 정수를 입력받아, 두 수중 큰 값 출력하기
  
  System.out.println("첫번째 정수 : ");
  int first = sc.nextInt();
  System.out.println("두번째 정수 : ");
  int second = sc.nextInt();
  
  System.out.print("첫번째 정수 " + first + "와 두번째 정수 " + second + " 중 큰 값은? ");
  if(first > second) System.out.println(first);
  else System.out.println(second);
  
  }
  
  public void minNumber(){
  //2. 두 개의 정수를 입력받아, 두 수중 작은 값 출력하기
  
  System.out.println("첫번째 정수 : ");
  int first = sc.nextInt();
  System.out.println("두번째 정수 : ");
  int second = sc.nextInt();
  
  System.out.print("첫번째 정수 " + first + "와 두번째 정수 " + second + " 중 작은 값은? ");
  if(first < second) System.out.println(first);
  else System.out.println(second);
  
  }
  
  public void threeMaxMin(){ 
  //3. 세 개의 정수를 입력받아, 세 수중 가장 큰 수와 가장 작은 수 출력하기
  
  System.out.println("첫번째 정수 : ");
  int one = sc.nextInt();
  System.out.println("두번째 정수 : ");
  int two = sc.nextInt();
  System.out.println("첫번째 정수 : ");
  int three = sc.nextInt();
  int max, min; //가장 큰 값, 작은 값 기록할 변수
  
  if(one > two && one > three) max = one;
  else if (two > three) max = two;
  else max = three;
  
  if(one < two && one < three) min = one;
  else if (two < three) min = two;
  else min = three;
  
  System.out.println("가장 큰 수 : " + max);
  System.out.println("가장 작은 수 : " + min);
  
  }
  
  public void checkEven(){
  //4. 한 개의 정수를 입력받아, 짝수인지 홀수인지 출력하기
  
  System.out.print("정수 하나 입력 : ");
  int num = new Scanner(System.in).nextInt();

  if(num % 2 == 0) System.out.println(num + "은 짝수다.");
  else System.out.println(num + "은 홀수다.");
  
  }
  
  public void isPassFail(){
  //5. 국, 영, 수 세 과목의 점수를 입력받아, 합격/불합격 확인하기
  
System.out.print("국어 : ");
int kor = sc.nextInt();
System.out.print("영어 : ");
int eng = sc.nextInt();
System.out.print("수학 : ");
int mat = sc.nextInt();

int tot = kor + eng + mat;
int avg = tot / 3;

if(kor >= 40 && eng >= 40 && mat >= 40 && avg >= 60)
System.out.println("합격!");
else System.out.println("불합격!");
  }
  
  public void scoreGrade(){
  //6. 점수를 입력받아, 학점 확인하기   
  System.out.print("점수 : ");
  int score = new Scanner(System.in).nextInt();
  
  char grade;

  if(score >= 0){
  if(score >= 90) grade = 'A';
  else if(score >= 80) grade = 'B';
  else if(score >= 70) grade = 'C';
  else if(score >= 60) grade = 'D';
  else  grade = 'F';
  
  System.out.println(score + " => " + grade);

}else System.out.println("잘못 입력하셨습니다.");
  
  }
  
  public void checkPlusMinusZero(){
  //7. 한 개의 정수를 입력받아, 양수인지 0인지 음수인지 확인하기
  
  System.out.print("정수 하나 입력 : ");
  int num = sc.nextInt();

  if (num > 0) System.out.println("양수다.");
  else if (num < 0) System.out.println("음수다.");
  else System.out.println("0이다.");
  
  }
  
  public void whatCaracter(){
  //8. 문자 하나를 입력받아, 영어대문자인지 소문자인지 
  //숫자문자인지 기타문자인지 확인하기
  
  System.out.print("문자 하나 입력 : ");
  char ch = new Scanner(System.in).next().charAt(0);
  
  if(ch >= 'A' && ch <= 'Z') System.out.println(ch + "는 영어대문자");
  else if(ch >= 'a' && ch <= 'z') System.out.println(ch + "는 영어소문자");
  else if(ch >= '0' && ch <= '9') System.out.println(ch + "는 숫자");
  else System.out.println(ch + "는 기타문자");
  
  }
  
}



package logic.home.model;

import java.util.Scanner;

public class PrimitiveTypeSample {
private Scanner sc = new Scanner(System.in);
public void typeSize(){
//1. 기본자료형 메모리 할당크기 확인하기
}
public void minMaxValue(){
//2. 기본자료형 값의 최소값, 최대값 출력하기
System.out.println("Byte타입 최대값 : " + Byte.MAX_VALUE);
System.out.println("Byte타입 최소값 : " + Byte.MIN_VALUE);
System.out.println("short타입 최대값 : " + Short.MAX_VALUE);
System.out.println("short타입 최소값 : " + Short.MIN_VALUE);
System.out.println("int타입 최대값 : " + Integer.MAX_VALUE);
System.out.println("int타입 최소값 : " + Integer.MIN_VALUE);
System.out.println("long타입 최대값 : " + Long.MAX_VALUE);
System.out.println("long타입 최소값 : " + Long.MIN_VALUE);
System.out.println("float타입 최대값 : " + Float.MAX_VALUE);
System.out.println("float타입 최소값 : " + Float.MIN_VALUE);
System.out.println("double타입 최대값 : " + Double.MAX_VALUE);
System.out.println("double타입 최소값 : " + Double.MIN_VALUE);
}
public void bitSize(){
//3. 기본자료형 비트갯수 확인하기
}

}

package logic.home.model;

import java.util.Scanner;

public class SwitchSample {
private Scanner sc = new Scanner(System.in);
public void calculator(){
//1. 두 개의 정수와 한 개의 연산문자를 입력받아 계산한 결과 확인하기
System.out.print("첫번째 정수 : ");
int first = sc.nextInt();
System.out.print("두번째 정수 : ");
int second = sc.nextInt();
System.out.print("연산문자(+,-,*,/,%) : ");
char op = sc.next().charAt(0);
int result;  

switch(op){
case '+': result = first + second; break;
case '-':  result = first - second; break;
case '*': result = first * second; break;
case '/': result = first / second;  break;
case '%': result = first % second; break;
default: System.out.println("잘못된 문자가 입력되었습니다.");
System.out.println("다시 입력하십시오.");
result = 0;
}
System.out.println(first + " " + op + " " + second + " = " + result);
}
public void fruitPrice(){
//2. 과일이름을 문자열로 입력받아, 그 과일의 가격 출력하기
System.out.print("과일명 : ");
String fruitName = sc.next();
System.out.print("수량 : ");
int quantity = sc.nextInt();
int price;
switch(fruitName){
case "사과": price = 1200; break;
case "배": price = 2500; break;
case "포도": price = 5000; break;
case "오렌지": price = 500; break;
case "키위": price = 350; break;
default: price = 0;
}
System.out.println(fruitName + " 한 개의 가격은 " + price + "원");
System.out.println("총 구매가격 : " +  (price * quantity));
}

}

package logic.home.model;

import java.util.Scanner;

public class VariableSample {
private Scanner sc = new Scanner(System.in);
public void myProfile(){ //1. 내 신상정보 변수에 담아 출력하기

String name = "\n김영미";
int age = 26;
String email = "02.03@hanmail.net";
String phone = "010-2635-1928";
char gender = '여';
System.out.println("이름 : " + name);
System.out.println("나이 : " + age);
System.out.println("이메일 : " + email);
System.out.println("전화번호 : " + phone);
System.out.println("성별 : " + gender);
}
public void empInformation(){ //2. 사원정보를 키보드로 입력받아 출력하기
System.out.println("이름입력 : ");
String name = sc.next();
System.out.println("나이입력 : ");
int age = sc.nextInt();
System.out.println("연봉입력 : ");
long pay = sc.nextLong();
System.out.println("평균점수입력 : ");
float average = sc.nextFloat();
System.out.println("세율입력 : ");
double tax = sc.nextDouble();
System.out.println("등급입력 : ");
char grade = sc.next().charAt(0);
System.out.println("이름 : " + name);
System.out.println("나이 : " + age);
System.out.println("연봉 : " + pay);
System.out.println("평균점수 : " + average);
System.out.println("세율 : " + tax);
System.out.println("등급 : " + grade);
}
public void defaultValue(){ //3. 기본 자료형 변수의 초기값 확인하기
}

}


package logic.home.model;

import java.util.Scanner;

public class WhileSample {
private static Scanner sc = new Scanner(System.in);

public static void printUniCode() {
//1. 문자 하나 입력받아, 그 문자의 유니코드 출력 반복('0' 입력되면 반복종료)
System.out.print("문자 하나 입력 : ");
char ch;
for( ; (ch = sc.next().charAt(0)) != '0'; ){
System.out.println(ch + " is code " + (int)ch);
System.out.print("문자 하나 입력 : ");
}
System.out.println("Bye Bye!!");
}
public void sum1To100(){
//2. 1~100까지 정수들의 합계 출력하기(while 문으로 작성)
int sum = 0;
int k = 1;
while(k < 101){ 

if(k < 100) System.out.print(k + "+");
else System.out.println(k);
sum += k;
k++;

}

System.out.println("1 ~ 100까지 정수들의 합 : " + sum);
}
public void numberGame(){
//3. 1~100사이의 임의의 정수를 발생시켜, 숫자 알아맞추기
int num = (int)(Math.random() * 100) + 1;
Scanner sc = new Scanner(System.in);
int count = 1;
System.out.println("숫자 알아맞추기 게임 ****\n");
while(true){
System.out.print("입력 : " );
int findNum = sc.nextInt();
if(num == findNum){
System.out.println("\n맞았습니다.");
System.out.println(count + "번 만에 맞히셨습니다.");
break; 
}else{ 
System.out.println("틀렸습니다.");
if(num > findNum)
System.out.println(findNum + "보다 큽니다.");
else
System.out.println(findNum + "보다 작습니다.");
count++;
}
}
System.out.println("숫자 알아맞추기 게임 종료...");
  }
public void countCharacter(){
//4. 문자열을 입력받아, 글자 갯수 알아내어 출력하기

while(true){
System.out.print("문자열 입력 : ");
String value = sc.next();
System.out.println(value + "의 " + "문자의 갯수는 " + (value).length() + "개");
}
}
public void countInChar(){
//5. 문자열값과 문자 하나를 입력받아, 문자열에 문자가 몇 개 있는지 확인하기
System.out.print("문자열 입력 : ");
String value = sc.next();
System.out.print("찾을 문자 : ");
char find = sc.next().charAt(0);
int index = 0, count = 0;
while(index < value.length()){
if(find == value.charAt(index++)) count++;
}
System.out.println(value + "에 포함된 " + find + "문자의 갯수는 " + count + "개");
}

}

---------------------------------------------------------------------------------------------------------


package array.controller;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Random;
import java.util.Scanner;

public class ArraySample {
public void testArrayAllocation(){
//1. 배열선언 : 배열공간의 주소를 기록할 레퍼런스 변수 만들기
//자료형[] 레퍼런스변수명;
//배열 주소 기록용 레퍼런스변수 == 배열명
int[] iar;
char[] car;
double[] dar;
byte[] bar;
short[] sar;
float []far;
long lar[];
String[] strArray;
//현재 주소가 기록되지 않은 null 상태임
//System.out.println("iar : " + iar); //사용못함
//2. 배열공간 할당
//배열레퍼런스변수 = new 자료형[갯수];
iar = new int[10]; //40byte : 4byte * 10개
dar = new double[10];  //80byte : 8byte * 10개
car = new char[10];  //20byte : 2bbyte * 10개
bar = new byte[10];
sar = new short[10];
lar = new long[10];
far = new float[10];
strArray = new String[5];
//배열레퍼런스.length : 할당된 갯수
System.out.println("iar이 참조하는 배열공간의 방갯수 : " 
+ iar.length);
System.out.println("strArray 가 참조하는 배열공간의 방갯수 : "
+ strArray.length);
//배열공간의 값 기록, 계산, 출력을 연속 처리할 경우
//for문 주로 사용함
//예 : iar이 참조하는 배열공간에 순서대로 랜덤값 기록할 경우
//1부터 100사이의 임의의 정수를 기록 처리
for(int i = 0; i < iar.length; i++){
iar[i] = (int)(Math.random() * 100) + 1;
}
//출력
for(int i = 0; i < iar.length; i++)
System.out.print(iar[i] + ", ");
System.out.println();
//1~100사이의 임의의 난수들의 합계
int sum = 0;
for(int i = 0; i < iar.length; i++)
sum += iar[i];
System.out.println("총합 : " + sum);
}
public void sumByteArray(){
Random r = new Random();
byte[] bar = new byte[10];
int sum = 0;
for(int i = 0; i < bar.length; i++){
bar[i] = (byte)(r.nextInt(Byte.MAX_VALUE) + 1);
sum += bar[i];
}
for(int i = 0; i < bar.length; i++)
System.out.print(bar[i] + "\t");
System.out.println();
System.out.println("bar 총합 : " + sum);
}
public void sumShortArray(){
Random r = new Random();
short[] sar = new short[10];
int sum = 0;
for(int i = 0; i < sar.length; i++){
sar[i] = (short)(r.nextInt(Short.MAX_VALUE) + 1);
sum += sar[i];
}
for(int i = 0; i < sar.length; i++)
System.out.print(sar[i] + "\t");
System.out.println();
System.out.println("sar 총합 : " + sum);
}
public void sumIntArray(){
Random r = new Random();
int[] iar = new int[10];
int sum = 0;
for(int i = 0; i < iar.length; i++){
iar[i] = r.nextInt(Integer.MAX_VALUE) + 1;
sum += iar[i];
}
for(int i = 0; i < iar.length; i++)
System.out.print(iar[i] + "\t");
System.out.println();
System.out.println("iar 총합 : " + sum);
}
public void sumDoubleArray(){
Random r = new Random();
double[] dar = new double[10];
double sum = 0.d;
for(int i = 0; i < dar.length; i++){
dar[i] = r.nextDouble() * 
(Double.MAX_VALUE +1);
sum += dar[i];
}
for(int i = 0; i < dar.length; i++)
System.out.print(dar[i] + "\t");
System.out.println();
System.out.println("dar 총합 : " + sum);
}
public void arrayInitialization(){
//int[] ar = {11, 22, 33, 44, 55};
int[] ar = new int[]{12, 23, 34, 45, 56};
System.out.println("ar length : " + ar.length);
for(int i = 0; i < ar.length; i++)
System.out.print(ar[i] + "\t");
System.out.println();
}
public void testStringArray(){
String[] strArray = {"apple", "orange", "kiwi"};
System.out.println("length : " + strArray.length);
for(int i = 0; i < strArray.length; i++)
System.out.print(strArray[i] + "\t");
System.out.println();
}
//배열실습문제 4
public void test4(){
System.out.print("숫자로만 입력 : ");
String numbers = new Scanner(System.in).next();
int sum = 0;
for(int i = 0; i < numbers.length(); i++){
sum += Integer.parseInt(numbers.substring(i, i + 1));
}
System.out.println("숫자들의 총합 : " + sum);
}
//배열실습문제 5
public void test5(){
System.out.print("숫자로만 입력 : ");
String numbers = new Scanner(System.in).next();
int sum = 0;
for(int i = 0; i < numbers.length(); i++){
sum += (int)numbers.charAt(i) - 48;
}
System.out.println("숫자들의 총합 : " + sum);
}
//날짜데이터 처리 테스트
public void testDate(){
//클래스 사용시
//클래스명 레퍼런스변수 = new 클래스의 생성자();
//클래스생성자 == Constructor
//클래스명 레퍼런스변수 = new 생성자();
Date today = new Date();
GregorianCalendar currentDate = 
new GregorianCalendar();
System.out.println("today : " + today.toString());
System.out.println("currentDate : " + currentDate.toString());
System.out.println("년 : " + currentDate.get(Calendar.YEAR));
}
//배열실습문제 6
public void test6(){
String personID = "881225-1234567";
int year = Integer.parseInt(personID.substring(0, 2)) + 1900;
int month = Integer.parseInt(personID.substring(2, 4));
int day = Integer.parseInt(personID.substring(4, 6));
int gender = Integer.parseInt(personID.substring(7, 8));
GregorianCalendar birthDate = new GregorianCalendar(year, month-1, day);
String weekDay = "";
switch(birthDate.get(Calendar.DAY_OF_WEEK)){
case 1: weekDay = "일요일"; break;
case 2: weekDay = "월요일"; break;
case 3: weekDay = "화요일"; break;
case 4: weekDay = "수요일"; break;
case 5: weekDay = "목요일"; break;
case 6: weekDay = "금요일"; break;
case 7: weekDay = "토요일"; break;
}
System.out.println("태어난 요일은 " + weekDay + "입니다.");
System.out.println("성별은 " + (gender == 1? "남자": "여자") + "입니다.");

GregorianCalendar today = new GregorianCalendar();
int age = today.get(Calendar.YEAR) - birthDate.get(Calendar.YEAR);
System.out.println("나이는 " + age + "세 입니다.");
}
}

package array.controller;

public class TwoArraySample {
//2차원 배열 테스트
/*public void testTwoArray(){
//배열 선언과 할당시에 []기호 한 개 사용 : 1차원배열
//1차원배열 : 자료형이 같은 변수들의 묶음
//자료형이 같은 1차원배열들의 묶음 : 2차원배열
//배열 선언과 할당시에 []기호 두 개 사용
int a, b, c, d, e;
int[] ar = new int[5];  //1차원배열
int[] br = new int[5];
int[] cr = new int[5];
int[][] tar = new int[3][5];  //2차원배열
//int[][] qar = new int[3][5];
//int[][][] zar = new int[2][3][5];  //3차원배열
}*/
public void testTwoArray(){
//2차원배열의 선언
//자료형[][] 레퍼런스변수;
//자료형 []레퍼런스변수[];
//자료형 레퍼런스변수[][];
int[][] tar;  //stack 에 할당되는 지역변수임
//2차원배열의 첫번째 new 할당은 레퍼런스변수들의 묶음이다.
tar = new int[3][];
//2차원배열의 두번째 new 할당은 1차원배열들이다.
tar[0] = new int[5];
tar[1] = new int[6];
tar[2] = new int[4];
System.out.println("할당된 1차원배열 갯수 : " 
+ tar.length);
System.out.println("첫번째 1차원배열의 크기 : "
+ tar[0].length);
System.out.println("두번째 1차원배열의 크기 : "
+ tar[1].length);
System.out.println("세번째 1차원배열의 크기 : "
+ tar[2].length);
//2차원배열은 2중 for문 사용함
for(int row = 0; row < tar.length; row++){ //행반복
System.out.print(row + "행 : ");
for(int col = 0; col < tar[row].length; col++){
//각 행별 열에 대한 반복
System.out.print(tar[row][col] + "   ");
}
System.out.println();
}
}
//정변배열 : 각 행별 열의 갯수가 같은 배열
//즉, 각 행이 참조하는 1차원배열의 크기가 같은 경우
public void testTwoArray2(){
int[][] tar = new int[5][3];
for(int i = 0; i < tar.length; i++){
System.out.print(i + "행 : ");
for(int j = 0; j < tar[i].length; j++){
tar[i][j] = j + 1;
System.out.print(tar[i][j] + "  ");
}
System.out.println();
}
}
//가변배열 : 행이 참조하는 1차원배열의 갯수가 다를때
public void testTwoArray3(){
int[][] tar = new int[3][];
//위 선언은 힙영역에 레퍼런스 3개를 배열 할당함
tar[0] = new int[5];
tar[1] = new int[3];
tar[2] = new int[7];
for(int i = 0; i < tar.length; i++){
System.out.print(i + "행 : ");
for(int j = 0; j < tar[i].length; j++){
tar[i][j] = j + 1;
System.out.print(tar[i][j] + "  ");
}
System.out.println();
}
}
//1차원배열의 초기화
//자료형[] 레퍼런스 = {초기값, 초기값, ..... };
public void testTwoArrayInit(){
//2차원배열의 초기화 : 정변배열
int[][] tar = {{10, 20, 30, 40}, 
{11, 22, 33, 44}, 
{12, 45, 78, 96}};
for(int i = 0; i < tar.length; i++){
System.out.print(i + "행 : ");
for(int j = 0; j < tar[i].length; j++){
System.out.print(tar[i][j] + "  ");
}
System.out.println();
}
}
public void testTwoArrayInit2(){
//가변배열 초기화
int[][] tar = {{11, 22, 33}, 
{1, 2, 3, 4, 5, 6, 7}, 
{21, 31, 4, 6}, 
{74, 84, 94, 54, 64}};
for(int i = 0; i < tar.length; i++){
System.out.print(i + "행 : ");
for(int j = 0; j < tar[i].length; j++){
System.out.print(tar[i][j] + "  ");
}
System.out.println();
}
}
}


package array.controller;

public class ArraySample2 {
//메소드 {} 밖, 클래스 영역에서 선언된 변수
//멤버변수 == 필드(Field)라고 함 == 전역변수(Global Variable)
//static 예약어는 멤버변수, 멤버함수에만 사용할 수 있음
//접근제한자 [예약어] 자료형 변수명;
private static boolean isOK;
private static char level;
private static int inum;
private static double dnum;
private static String str;
public void testDefaultValue(){
//자바에서는 정적(static)메모리와 힙(heap)메모리에
//할당되는 변수방에 기본으로 기록할 값을 준비해 두었음
//기본값이라고 함
System.out.println("isOK : " + isOK);
System.out.println("level : " + level);
System.out.println("inum : " + inum);
System.out.println("dnum : " + dnum);
System.out.println("str : " + str);
//지역변수(Local Variable)
//메소드 {} 안, 또는 제어문 {} 안에서 선언된 변수
int score = 88;  //반드시 직접 초기화해야 함
System.out.println("score : " + score);
boolean[] flags = new boolean[2];
char[] codes = new char[2];
int[] values = new int[2];
double[] points = new double[2];
String[] strValues = new String[2];
for(int i = 0; i < 2; i++){
System.out.println(i + "번째 방의 값 : "
+ flags[i] + ", " + codes[i]
+ ", " + values[i] + ", "
+ points[i] + ", " + strValues[i]);
}
}
public void testArrayInit(){
//첫번째 방법
int[] arr1 = {100, 200, 300};
sum(arr1);  
//arr1이 가진 주소를 sum() 메소드의 ar 에게 전달하게 됨
//두번째 방법
int[] arr2 = new int[]{400, 500, 600};
sum(arr2);
int[] arr3;
//arr3 = {11, 22, 33, 44, 55};
arr3 = new int[]{11, 22, 33, 44, 55};
sum(arr3);
//메소드 실행시 ()안에 기록한 값을 전달값
//전달인자(argument)라고 함
sum(new int[]{1, 2, 3, 4, 5});
}
public void sum(int[] ar){
//메소드명(매개변수 선언)
//매개변수(parameter) == 지역변수임
//메소드 실행시 전달값 받아주는 변수
int result = 0;
for(int i = 0; i < ar.length; i++)
result += ar[i];
System.out.println("합계 : " + result);
}
public void swap(){
int a = 12, b = 23;
System.out.println("a : " + a + ", b : " + b);
//두 변수의 값을 바꾸려면, swap 공식 사용
int temp = a;
a = b;
b = temp;
System.out.println("a : " + a + ", b : " + b);
}
public void shuffleArray(){
//int 배열 45개 할당
int[] ar = new int[45];
//1부터 45까지의 정수를 0번방부터 차례대로 기록
for(int i = 0; i < ar.length; i++)
ar[i] = i + 1;
//기록 결과 출력 확인
for(int i = 0; i < ar.length; i++)
System.out.print(ar[i] + "  ");
System.out.println();
//100번 반복해서 0번방의 값과 임의의 순번방의 값 바꾸기
for(int i = 0; i < 100; i++){
int j = (int)(Math.random() * 45);
int temp = ar[0];
ar[0] = ar[j];
ar[j] = temp;
}
//결과 출력 확인
for(int i = 0; i < ar.length; i++)
System.out.print(ar[i] + "  ");
System.out.println();
}
public void printCharHexCode(){
//문자의 유니코드를 16진수로 출력 처리
char[] hex = {'C', 'A', 'F', 'E'};
String[] binary = {"0000", "0001", "0010", "0011", 
"0100", "0101", "0110", "0111", 
"1000", "1001", "1010", "1011",
"1100", "1101", "1110", "1111"};
String result = "";
for(int i = 0; i < hex.length; i++){
if(hex[i] >= '0' && hex[i] <= '9'){
result += binary[hex[i] - '0'];
//숫자문자일 때는 실제 숫자로 바꾸고
}else{
result += binary[hex[i] - 'A' + 10];
}
}
System.out.println("hex : " + new String(hex));
System.out.println("binary : " + result);
}
public void copyArray(){
int[] numbers = {10, 20, 30, 40, 50};
int[] copyNumbers = new int[10];
/*for(int i = 0; i < numbers.length; i++){
copyNumbers[i] = numbers[i];
}*/
System.arraycopy(numbers, 0, copyNumbers, 0, numbers.length);
for(int i = 0; i < numbers.length; i++){
System.out.println(i + " : " + 
numbers[i] + ", " + copyNumbers[i]);
}
}
}

package array.start;

public class TestMainArgs {

public static void main(String[] args) {
// 프로그램 실행시 main() 메소드에 값을 전달할 수 있음
/*System.out.println("전달받은 값의 갯수 : " 
+ args.length);
for(int i = 0; i < args.length; i++){
System.out.println(i + " : " + args[i]);
}*/
//실행시 정수들을 입력받아
//정수들의 합계를 구해서 출력
//입력예 : 10 20 30 
//출력 : 60
int sum = 0;
for(int i = 0; i < args.length; i++){
sum += Integer.parseInt(args[i]);
}
System.out.println("합계 : " + sum);
}

}

package array.view;

import java.util.Scanner;
import array.controller.*;

public class Menu {
/*public void displayMenu(){
Scanner sc; //sc : 레퍼런스변수임(주소보관용변수)
//RAM의 stack 영역에 할당되었음
sc = new Scanner(System.in);
Scanner sc2 = new Scanner(System.in);
System.out.println("sc : " + sc.hashCode());
System.out.println("sc2 : " + sc2.hashCode());
}*/
public void displayMenu(){
Scanner sc = new Scanner(System.in);
ArraySample asamp = new ArraySample();
//의존성 주입(Dependancy Injection : DI)
ArraySample2 asamp2 = new ArraySample2();
TwoArraySample tsamp = new TwoArraySample();
int no;
do{
System.out.println("\n***** 기본자료형 배열 테스트 프로그램 *****\n");
System.out.println("1. 기본자료형 배열선언과 할당 확인");
System.out.println("2. byte자료형 1부터 byte 자료형 최대값 사이의 난수들의 합계");
System.out.println("3. short 자료형 1부터 최대값사이의 난수들의 합계");
System.out.println("4. int 자료형 1부터 최대값사이의 난수들의 합계");
System.out.println("5. double 자료형 0.0부터 최대값사이의 난수들의 합계");
System.out.println("6. 배열 초기화 테스트");
System.out.println("7. 문자열 배열 초기화 테스트");
System.out.println("8. 배열실습문제 4 테스트");
System.out.println("9. 배열실습문제 5 테스트");
System.out.println("10. 오늘 날짜 조회");
System.out.println("11. 배열실습문제 6 테스트");
System.out.println("12. static과 heap에 할당되는 변수의 기본값 확인");
System.out.println("13. 배열 초기화 테스트2");
System.out.println("14. swap 공식 테스트");
System.out.println("15. 배열공간의 값 섞기 테스트");
System.out.println("16. 문자의 유니코드를 16진수로 출력하기");
System.out.println("17. 배열값 복사하기");
System.out.println("18. 2차원배열 테스트");
System.out.println("19. 끝내기");
System.out.print("번호 선택 : ");
no = sc.nextInt();
switch(no){
case 1: //System.out.println("1선택");
asamp.testArrayAllocation();
break;
case 2: asamp.sumByteArray();
break;
case 3: asamp.sumShortArray();
break;
case 4: asamp.sumIntArray();
break;
case 5: asamp.sumDoubleArray();
break;
case 6: asamp.arrayInitialization();
break;
case 7: asamp.testStringArray();
break;
case 8: asamp.test4();   break;
case 9: asamp.test5();   break;
case 10: asamp.testDate();  break;
case 11: asamp.test6(); break;
case 12: asamp2.testDefaultValue();
break;
case 13: asamp2.testArrayInit();
break;
case 14: asamp2.swap();  break;
case 15: asamp2.shuffleArray();  break;
case 16: asamp2.printCharHexCode();
break;
case 17: asamp2.copyArray();  break;
case 18: tsamp.testTwoArray(); break;
case 19: System.out.print("배열테스트 프로그램을 종료하시겠습니까?(y/n) : ");
if(sc.next().toUpperCase().charAt(0) == 'Y'){
//System.exit(0);
return;  
//displayMenu() 를 실행시킨 위치로 되돌아가라.
}
default: System.out.println("번호를 잘못 입력하였습니다.");
       System.out.println("다시 입력하십시오.");
}
}while(true);
}
}


package input.test;

public class TestCommandLine {

public static void main(String[] args) {
// 2차원배열 실습문제 3
String name = args[0];
char gender = args[1].charAt(0);
int age = Integer.parseInt(args[2]);
double height = Double.parseDouble(args[3]);
double weight = Double.parseDouble(args[4]);
System.out.println("이름 : " + name);
System.out.println("성별 : " + gender);
System.out.println("나이 : " + age);
System.out.println("키 : " + height);
System.out.println("몸무게 : " + weight);

}

}

package silsub.model;

import java.util.Scanner;

public class Sample {
//실습문제1
public void munjae1(){
int[][] tar = new int[4][4];
//1~100사이의 임의의 정수 기록
for(int i = 0; i < tar.length - 1; i++){
for(int j = 0; j < tar[i].length - 1; j++){
tar[i][j] = (int)(Math.random() * 100) + 1;
}
}
//각 행별 3열과 3행에 합계 기록
for(int i = 0; i < tar.length - 1; i++){
for(int j = 0; j < tar[i].length - 1; j++){
tar[i][3] += tar[i][j];
tar[3][i] += tar[j][i];
}
tar[3][3] += tar[i][3] + tar[3][i];
}
//출력
for(int i = 0; i < tar.length; i++){
System.out.print(i + "행 : ");
for(int j = 0; j < tar[i].length; j++){
System.out.print(tar[i][j] + "\t ");
}
System.out.println();
}
}
//실습문제2
public void munjae2(){
int[][] tar = new int[3][];
//각 행별 열의 갯수는 키보드로 입력받아 할당함
for(int i = 0; i < tar.length; i++){
System.out.print(i + "행이 참조할 열 갯수 : ");
tar[i] = new int[new Scanner(System.in).nextInt()];
}
//1부터 100사이의 임의의 정수를 모든 방에 기록
for(int i = 0; i < tar.length; i++){
int sum = 0;
for(int j = 0; j < tar[i].length; j++){
tar[i][j] = (int)(Math.random() * 100) + 1;
sum += tar[i][j];
}
//각 행별 열의 합계가 5의 배수인 행만 출력
if(sum % 5 == 0){
System.out.println(i + "행 합계 : " + sum);
for(int j = 0; j < tar[i].length; j++){
System.out.print(tar[i][j] + "\t ");
}
System.out.println();
}
}
}
}

----------------------------------------------------------------------------------------------------------


package test.controller;

import java.util.Scanner;

public class Test1 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("입력 : ");
int num = sc.nextInt();
if(num >= 1 && num <= 100){
if(num % 2 == 0)
System.out.println("2의 배수입니다.");
else
System.out.println("2의 배수가 아닙니다.");
}
}
}

package test.controller;

public class Test2 {

public static void main(String[] args) {
for(int dan = 2; dan <= 5; dan++){
for(int su = 1; su < 10; su++){
int result = dan * su;
if(result % 2 == 1)
System.out.println(dan + "*" + su + "=" + result);
}
}

}

}


package test.controller;

public class Test3 {

public static void main(String[] args) {
double sum = 0.0, avg = 0.0;
int n = 1;
while(n <= 100){
sum += n;
n++;
}
System.out.println("합계 : " + sum);
System.out.println("평균 : " + (sum / 100));
}

}

package test.controller;

import java.util.Scanner;

public class Test5 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수 두 개 입력 : ");
int first = sc.nextInt();
int second = sc.nextInt();
if((first >= 1 && first <= 9) && (second >= 1 && second <= 9)){
int result = first * second;
if(result >= 1 && result <= 9)
System.out.println("한자리 수 입니다.");
if(result >= 10 && result <= 99)
System.out.println("두자리 수 입니다.");
}

}

}

package test.controller;

import java.util.Scanner;

public class Test6 {

public static void main(String[] args) {
System.out.print("입력 : ");
int num = new Scanner(System.in).nextInt();

switch(num){
case 1: System.out.println("** 입력이 정상적으로 되었습니다. **"); break;
case 2: System.out.println("** 조회가 시작되었습니다. **"); break;
case 3: System.out.println("** 수정이 정상적으로 되었습니다. **"); break;
case 4: System.out.println("** 삭제가 정상적으로 되었습니다. **"); break;
case 5: System.out.println("** 정상적으로 종료 되었습니다. **"); break;
default: System.out.println("** 다시 입력해 주세요! **");
}
}

}

package com.calc;

public class Calculator {

public static void main(String[] args) {
int first = Integer.parseInt(args[0]);
int second = Integer.parseInt(args[1]);
System.out.println("합 : " + (first + second));
System.out.println("차 : " + (first - second));
System.out.println("곱 : " + (first * second));
if(second == 0 || second < 0)
System.out.println("나누기 : 0");
else
System.out.println("나누기 : " + (first / second));
}

}


package array;

public class Test7 {

public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
double sum = 0;
for(int i = 0; i < array.length; i++){
if(array[i] % 2 == 0)
continue;
System.out.println(array[i]);
sum += array[i];
}
System.out.println("합계 : " + sum);

}

}

package array;

public class Test8 {

public static void main(String[] args) {
int[][] array = {
{12, 41, 36, 56}, 
{82, 10, 12, 61}, 
{14, 16, 18, 78}, 
{45, 26, 72, 23}};
double sum = 0.0, avg = 0.0;
int count = 0;
for(int i = 0; i < array.length; i++){
for(int j = 0; j < array[i].length; j++){
sum += array[i][j];
count++;
}
}
System.out.println("합계 : " + sum);
System.out.println("평균 : " + (sum / count));
}

}

package array;

public class Test9 {

public static void main(String[] args) {
int[][] array = {
{12, 41, 36, 56}, 
{82, 10, 12, 61}, 
{14, 16, 18, 78}, 
{45, 26, 72, 23}};
int max = Integer.MIN_VALUE, min = Integer.MAX_VALUE;
for(int i = 0; i < array.length; i++){
for(int j = 0; j < array[i].length; j++){
if(max < array[i][j])
max = array[i][j];
if(min > array[i][j])
min = array[i][j];
}
}
System.out.println("가장 큰 값 : " + max);
System.out.println("가장 작은 값 : " + min);

}

}

package array;

public class Test10 {

public static void main(String[] args) {
int[][] array = {
{12, 41, 36, 56}, 
{82, 10, 12, 61}, 
{14, 16, 18, 78}, 
{45, 26, 72, 23}};
int[] copyAr = new int[array.length * array[0].length];
int copyIndex = 0;
for(int i = 0; i < array.length; i++){
for(int j = 0; j < array[i].length; j++){
if(array[i][j] % 3 == 0){
copyAr[copyIndex] = array[i][j];
for(int k = 0; k < copyIndex; k++){
if(copyAr[k] == copyAr[copyIndex]){
copyIndex--;
break;
}
}
copyIndex++;
}
}
}

System.out.print("copyAr : ");
for(int i = 0; i < copyIndex; i++)
System.out.print(copyAr[i] + "  ");
}

}








728x90