반응형
학생(Student) 라는 클래스를 생성하고 하위 속성에 이름, 나이, 몸무게를 작성하시오.

package ch01;

 

// 클래스를 설계할 때 이름을 잘 짓는 것이 중요하다.

// Student class 설계 도면

public class Student {

// 속성

int age;

double weight;

// 문자열이라는 데이터 타입이다.

String name;

 

} // end of class

package ch01;

 

public class MainTest1 {

 

// 코드의 시작점

public static void main(String[] args) {

 

Student kim;

Student hong; // 변수의 선언

hong = new Student(); // 변수의 초기화

hong.age = 10; // . 연산자 -> 객체안에 들어간다.

// 화면에 hong age 값을 출력하시오.

System.out.println(hong.age);

 

} // end of main

} // end of class

게임 캐릭터 중 Warrior 라는 캐릭터 클래스를 작성해보고 속성값도 작성해보자.

public class Warrior {

 

// 속성(상태) - 멤버 변수

int damage; // 공격력

String name; // 닉네임

String color; // 피부색

double height; // 키

 

} // end of class

package ch01;

 

public class MainTest2 {

 

// 메인함수

public static void main(String[] args) {

 

// 메인 함수안에 선언하는 변수는 >> 지역 변수

 

Warrior w1; // 변수에 선언 > 참조 타입

// new 키워드를 만나면 메모리에 올려준다.

// 메모리에 올라가면 프로그램 세상에 존재하게 된다.

w1 = new Warrior();

 

w1.name = "작은 오크";

w1.color = "초록색";

w1.height = 50;

w1.damage = 100;

 

Warrior w2;

w2 = new Warrior();

 

w2.name = "큰 오크";

w2.color = "파란색";

w2.height = 200;

w2.damage = 500;

 

} // end of main

 

} // end of class

반응형

'Java > Java 연습문제' 카테고리의 다른 글

[JAVA] 멤버변수와 메서드를 활용한 실습  (0) 2023.07.28
[JAVA] 함수구현하기  (0) 2023.07.28
[JAVA] 랜덤게임문제  (0) 2023.07.27
[JAVA] While 문 연습문제  (0) 2023.07.27
[JAVA] for문 연습문제  (0) 2023.07.27
반응형
스캐너와 랜덤 도구를 활용하여
1. 1 ~ 5사이의 랜덤 숫자를 발생시키고
2. 사용자가 입력한 값(5이하의 숫자)이 랜덤숫자와 같으면 성공 후 프로그램 종료
3. 기회는 총 3번
4. 입력값이 일치하지 않거나 5를 초과하는 숫자를 입력하면 기회는 감소되고 기회가 0인경우 실패

package ch05;

import java.util.Random;

import java.util.Scanner;

public class GuessingNumbersGame2 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

Random random = new Random();

 

int count = 3;

 

do {

int randomNum = random.nextInt(5) + 1;

System.out.println("5이하의 값을 입력해보세요!");

System.out.print(">>>");

int userNum = sc.nextInt();

if (userNum == randomNum) {

System.out.println("성공!! 프로그램을 종료합니다.");

break;

} else {

count--;

System.out.println("남은기회 : " + count + " 회 남았습니다.");

}

} while (count != 0);

if (count == 0) {

System.out.println("기회가 없습니다. 실패!!");

}

 

} // end of main

 

} // end of class

[출력값 - 성공한 경우]

 

5이하의 값을 입력해보세요!

>>>1

남은기회 : 2 회 남았습니다.

5이하의 값을 입력해보세요!

>>>2

성공!! 프로그램을 종료합니다.

[출력값 - 실패한 경우]

5이하의 값을 입력해보세요!

>>>6

남은기회 : 2 회 남았습니다.

5이하의 값을 입력해보세요!

>>>6

남은기회 : 1 회 남았습니다.

5이하의 값을 입력해보세요!

>>>6

남은기회 : 0 회 남았습니다.

기회가 없습니다. 실패!!

반응형

'Java > Java 연습문제' 카테고리의 다른 글

[JAVA] 함수구현하기  (0) 2023.07.28
[JAVA] 클래스 코딩하기  (0) 2023.07.28
[JAVA] While 문 연습문제  (0) 2023.07.27
[JAVA] for문 연습문제  (0) 2023.07.27
[JAVA] 조건문을 활용한 간단한 프로그래밍 (2)  (0) 2023.07.26
반응형
문제 1
while 문을 활용하여 사용자가 시작값과 종료값을 받아 시작-종료값의 합을 구하는 프로그램을 만들어보자.

package ch05;

 

import java.util.Scanner;

 

public class WhileMainTest2 {

 

// 메인 함수 - 메인 쓰래드 (작업자)

public static void main(String[] args) {

 

// 사용자가 입력한 숫자 start 값 받아주세요

// 사용자가 입력한 숫자 end 값을 받아주세요.

// 결과를 출력하는 프로그램 만들어보기

int sum = 0;

Scanner scn = new Scanner(System.in);

System.out.println("시작 값을 입력해주세요 : ");

int num = scn.nextInt();

System.out.println("마지막 값을 입력해주세요 : ");

int end = scn.nextInt();

 

while (num <= end) {

sum = sum + num;

// 반드시 종료되는 조건식을 추가해서 무한 반복을 조심

num++;

}

System.out.println("합산의 결과 값은 : " + sum + " 입니다.");

} // end of main

 

} // end of class

[출력값]

Ex) 1에서 10까지의 수를 더한다고 하면

시작 값을 입력해주세요 :

1

마지막 값을 입력해주세요 :

10

합산의 결과 값은 : 55 입니다.

문제 2
While 문을 활용하여 키보드에서 1, 2, 3, 4 를 입력하였을 때 저장, 수정, 삭제, 조회했습니다. 라는 메세지를 출력하고 0번을 눌렀을 때 프로그램이 종료되는 프로그램을 만들어보자.

package ch05;

 

import java.util.Scanner;

 

public class WhileMainTest3 {

 

// 메인 함수 - 메인 쓰래드 (작업자)

public static void main(String[] args) {

 

Scanner sc = new Scanner(System.in);

 

int input = 1;

 

while (input != 0) { // input 값이 0이 아니라면 true 결과가 나온다.

System.out.println("1. 저장 2. 수정 3. 삭제 4. 조회 0. 종료");

input = sc.nextInt();

if (input == 1) {

System.out.println("저장을 선택하셨습니다.");

} else if (input == 2) {

System.out.println("수정을 선택하였습니다.");

} else if (input == 3) {

System.out.println("삭제를 선택하였습니다.");

} else if (input == 4) {

System.out.println("조회를 선택하였습니다.");

}

}

System.out.println("종료");

} // end of main

 

} // end of class

[결과값]

1. 저장 2. 수정 3. 삭제 4. 조회 0. 종료

1

저장을 선택하셨습니다.

1. 저장 2. 수정 3. 삭제 4. 조회 0. 종료

2

수정을 선택하였습니다.

1. 저장 2. 수정 3. 삭제 4. 조회 0. 종료

3

삭제를 선택하였습니다.

1. 저장 2. 수정 3. 삭제 4. 조회 0. 종료

4

조회를 선택하였습니다.

1. 저장 2. 수정 3. 삭제 4. 조회 0. 종료

0

종료

반응형
반응형
문제 1. for문을 활용하여 1부터 10까지의 합을 구하면?

int num = 0;

for (int i = 1; i < 11; i++) {

num += i;

}

System.out.println(num);

출력값

55

문제 2. for문을 활용하여 구구단을 출력하시오
조건
2단 미만 10단 초과인 경우 잘못입력했습니다. 오류 출력하기.

Scanner sc = new Scanner(System.in);

System.out.println("원하는 단을 입력해주세요!");

int num = sc.nextInt();

if ((num <= 1) || (num >= 10)) {

System.out.println("잘못 입력하였습니다. ");

} else {

for (int i = 1; i < 10; i++) {

System.out.println(num + " * " + i + " = " + (num * i));

}

}

1단 입력시 출력값

원하는 단을 입력해주세요!

1

잘못 입력하였습니다.

2단 ~ 9단 입력시 출력값

원하는 단을 입력해주세요!

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

10단 입력시 출력값

원하는 단을 입력해주세요!

10

잘못 입력하였습니다.

반응형
반응형
주사위 굴리기

1 ~ 6 숫자중 랜덤으로 하나의 숫자가 나오는 프로그램을 만들어보자!

 

먼저 1 ~ 6중에서 하나의 수를 뽑아서 출력하는 코드를 작성해야 하는데

 

임의의 정수를 뽑기위해 Math.random() 메소드를 활용할 수 있다.

 

이 메소드는 0.0 <= ~ < 1.0 사이의 double 타입 난수를 리턴한다.

 

0.0 <= Math.random() < 1.0

여기에 각 변에 6을 곱하면 0.0 <= ~ < 6.0 사이의 double 타입 난수를 얻을 수 있다.

(0.0 * 6) <= Math.random() < (1.0 * 6)
  (0.0)                                                     (6.0)

양 변에 int 타입으로 강제 타입 변환하면 0~5 중에서 하나의 정수를 얻게된다.

(int) 0.0 <= Math.random() < (int) 6.0

마지막으로 양 변에 1을 더하면 1 ~ 6 중에서 하나의 정수를 얻을 수 있다.

(int) 0+1 <= Math.random() < (int) 6+1
                         1 ~ 6

// 주사위 번호 뽑기

int num = (int) (Math.random()*6) + 1; // 1, 2, 3, 4, 5, 6 중 랜덤으로 숫자를 num에 입력

 

if(num==1) {

System.out.println("1번이 나왔습니다!");

} else if(num==2) {

System.out.println("2번이 나왔습니다!");

} else if(num==3) {

System.out.println("3번이 나왔습니다!");

} else if(num==4) {

System.out.println("4번이 나왔습니다!");

} else if(num==5) {

System.out.println("5번이 나왔습니다!");

} else {

System.out.println("6번이 나왔습니다!");

}

이것을 활용하면

 

start부터 시작하는 n개의 정수중에서 하나의 정수를 얻기 위한 코드를 작성할 수 있다.

int num = (int) (Math.random() * n) + start;

 

반응형

'Java > Java 연습문제' 카테고리의 다른 글

[JAVA] While 문 연습문제  (0) 2023.07.27
[JAVA] for문 연습문제  (0) 2023.07.27
[JAVA] 조건문을 활용한 간단한 프로그래밍  (0) 2023.07.26
[JAVA] 연산자 연습문제  (0) 2023.07.26
[JAVA] 형변환 연습문제 2  (0) 2023.07.25
반응형
[문제1]
나이가 19살인 사람의 졸업여부를 확인하는 프로그램을 작성해보자
조건1
20살 이상인 경우 "고등학교를 졸업했습니다" 출력
조건2
20살 미만인 경우 "학교에 다니고 있습니다" 출력

int age = 19;

if (age >= 20) {

System.out.println("고등학교를 졸업 했습니다.");

} else {

System.out.println("학교에 다니고 있습니다.");

}

[문제2]
조건문을 활용하여 나이가 17살인 학생의 신상정보를 출력해보자!
조건 1
7살 이하인 경우 = "학교에 다니지 않습니다"
13살 이하인 경우 = "초등학교에 다니고 있습니다"
16살 이하인 경우 = "중학교에 다니고 있습니다"
그 위인경우 = "고등학교에 다니고 있습니다"

int age = 19;

if (age >= 20) {

System.out.println("고등학교를 졸업 했습니다.");

} else {

System.out.println("학교에 다니고 있습니다.");

}

System.out.println("===================================");

int age2 = 20;

if (age <= 7) {

System.out.println("학교에 다니지 않습니다.");

} else if (age <= 13) {

System.out.println("초등학교에 다니고 있습니다.");

} else if (age <= 16) {

System.out.println("중학교에 다니고 있습니다.");

} else {

System.out.println("고등학교에 다니고 있습니다.");

}

[문제3]
Scanner sc = new Scanner(System.in); 을 활용하여 나이를 입력받아 놀이공원의 입장료를 출력하는 프로그램을 작성해보자
조건
8살 미만 = 미취학 아동 / 요금 1,000원
14살 미만 = 초등학생 / 요금 2,000원
20살 미만 = 중, 고등학생 / 요금 2,500원
20살 초과 = 일반인 / 요금 3,000원

마지막 출력문은 "귀하의 입장료는 OOOO원 입니다"

Scanner sc = new Scanner(System.in);

System.out.println("나이를 입력해주세요");

int age3 = sc.nextInt();

int charge;

 

if(age3 < 8) {

charge = 1000;

System.out.println("미취학 아동입니다.");

} else if (age3 < 14) {

charge = 2000;

System.out.println("초등학생 입니다.");

} else if (age3 < 20) {

charge = 2500;

System.out.println("중, 고등학생 입니다.");

} else {

charge = 3000;

System.out.println("일반인 입니다.");

}

System.out.println("귀하의 입장료는 " + charge + "원 입니다.");

 

반응형
반응형

package ch03;

 

public class OperatorEx1 {

 

public static void main(String[] args) {

// 1

// 두 수를 덧셈 연산 하여 result1 변수에 담고

// 결과값 30.5를 출력 하세요.

int i = 10;

double d = 20.5;

더보기

double result1 = i + d;

System.out.println(result1);

 

// 2

// result1 변수를 정수형으로 강제 형 변환 해서 출력하세요

더보기

System.out.println((int)result1);

 

// 3

// i 변수의 값을 -1을 뺀 후 출력하세요

// 단, 단항 연산자 사용

더보기

System.out.println(--i);

 

// 4

// d 변수에 값을 -20.5로 출력 하세요

// 단, d 변수에 값을 변경하지 마세요

더보기

System.out.println(-d);

 

// 5

// 변수 i와 d, 관계 연산자를 사용해서 result2 변수를

// 선언하고 변수에 true 값이 담기도록 식을 만들고

// 출력하세요

더보기

boolean result2 = i < d;

System.out.println(result2);

 

int num1 = 10;

int num2 = 30;

 

// 6

// 변수 result3을 선언하고

// num1과 num2 변수가 숫자 50보다 큰지 논리 연산자를 사용해서 결과를 담고 출력하세요

더보기

boolean result3 = (num1 > 50) && (num2 > 50);

System.out.println(result3);

 

// 7

// num1과 num2 값 중 큰 수를 삼항 연산자를 사용해서

// max 변수에 값을 담고 출력해주세요

// 단, 선언과 초기화를 동시에 해주세요

더보기

int max = (num1 < num2) ? num2 : num1;

System.out.println(max);

}

 

}

 

출력값

더보기

30.5

30

9

-20.5

true

false

30

반응형
반응형

package ex_01;

 

public class Test06 {

 

public static void main(String[] args) {

 

byte result1 = 10 + 20; // 컴파일 단계에서 계산

System.out.println("result1 : " + result1);

 

byte v1 = 10;

byte v2 = 20;

int result2 = v1 + v2; // int 타입으로 변환 후 계산

System.out.println("result2 : " + result2);

 

byte v3 = 10;

int v4 = 100;

long v5 = 1000L;

long result3 = v3 + v4 + v5; // long 타입으로 변환 후 계산

System.out.println("result3 : " + result3);

 

char v6 = 'A';

char v7 = 1;

int result4 = v6 + v7; // int 타입으로 변환 후 계산, A는 65라는 값을 가짐

System.out.println("result4 : " + result4);

System.out.println("result4 : " + (char) result4); // 66의 값을 char로 변환 하면 B로 출력

 

int v8 = 10;

int result5 = v8 / v4;

System.out.println("result5 : " + result5);

 

int v9 = 10;

double result6 = v9 / 4.0;

System.out.println("result6 : " + result6);

 

int v10 = 1;

int v11 = 2;

double result7 = (double) v10 / v11;

System.out.println("result7 : " + result7);

 

}

 

}

출력값

result1 : 30

result2 : 30

result3 : 1110

result4 : 66

result4 : B

result5 : 0

result6 : 2.5

result7 : 0.5

반응형
반응형

주녘의 중간고사 성적은 다음과 같다.

 

국어 80점

수학 99점

영어 96점

 

세 과목의 값의 평균을 실수형과 정수형으로 표현하면?

 

[풀이]


더보기

 

package ex_01;

 

public class Test3 {

 

public static void main(String[] args) {

 

int kor = 80;

int eng = 96;

int math = 99;

 

double avg = (kor + eng + math) / 3.0;

// 3.0으로 나눈 값과 3으로 나눈 값의 결과는 다름 double 이므로 실수값을 입력해야함

 

System.out.println("평균점수(실수형) : " + avg);

System.out.println("평균점수(정수형) : " + (int) avg);

 

}

 

}

출력값

평균점수(실수형) : 91.66666666666667

평균점수(정수형) : 91

반응형

+ Recent posts