기록
day 0507 애플리케이션 기본 구조 본문
메뉴얼대로 만드는 것 (마치 전자렌지처럼)
메뉴얼은 지키되 창의적으로 만들기
미리 정해진걸 익히는 과정 - 흡수하기
컴파일러 언어 > 소스코드.java > 컴파일 > 소스코드.class > 실행
소프트웨어도 부품으로 대량생산하자 > java를 만듦(객체지향)
선생님이 점점 가까워지신다
..
책상이... 밀린다....
..................................
자리를 잘못앉은 것 같다 ................................
왜 자꾸 여기로 오시는걸까 ............................................................
https://java.sun.com/ 으로 oracle에 접속 가능하다
MSI : path설정까지 같이해줌
/cmd로 hello world 출력하기/
class 이름의 첫글자는 대문자로,
메모장 파일 저장할땐 반드시 class 이름과 같아야한다
{}는 하나의 묶음, 시작과 끝
하나의 main method를 가져야한다
메모장에서 코딩할 땐 .java 붙여줘야한다
System.out.println();
System : java가 미리 만들어놓은 명령어
print 출력해 : 명령어
ln : 줄바꿈
; 끝나는 지점에 안하면 잔소리한다
(python은 들여쓰기 필수, 안쓰면 오류남)
cd : 디렉터리 이동
dir : 디렉터리 목록 보기
cls : 화면 지우기
.java : 소스코드, 원시파일이다.
/javac로 컴파일하기/
javac [class명].java 으로 컴파일하면
.class 파일이 만들어진다 (.class : 컴퓨터가 이해할 수 있는 언어)
/class파일 실행하기/
java [class명]
* 오류 날 경우 오류 메세지로 오류잡기
메모장에서 UTF-8로 설정해도 계속 오류가 났다.
* 인코딩 오류 : 컴파일 시 javac [클래스명].java -encoding utf-8 써주기
/사용자 데이터 받아오기/
데이터를 저장시키기위한 저장공간 만들기 : 변수
변수의 성격 정해주기 (자료형)
다른이름으로저장 > 새 파일 : 형상관리(Git과 같다)
String name;
자료형 / 변수명
int age;
age의 공간을 마련해줘 그 공간에 정수(int)를 넣겠어
/java가 만들어둔 class 보러가기/
packages. 누르면 class. 누르면 해당 class에 대한 설명이 나온다.
https://docs.oracle.com/javase/8/docs/api/
데이터 입력받는 class : Scanner
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
new : 객체 생성
System.in : 키보드로 입력받음
sc는 변수이름
nextInt() : 정수 입력받기
next() : 문자열 입력받기
import java.util.Scanner;
public class PersonInfo {
public static void main(String[] args){
String name;
int age;
Scanner sc = new Scanner(System.in);
System.out.print("이름을 입력 : ");
name = sc.next();
System.out.print("나이를 입력 : ");
age = sc.nextInt();
System.out.println("내 이름은 " + name + "이고, 나이는 " + age + "살 입니다");
}
}
점심시간은 13:00 ~ 14:00
점심은 설렁탕 배고푸다
옆자리 칭구랑 설렁탕집에서 김치전을 먹으려했눙데 ,, 김치전이 커서 한 두명 더 있어야할거같다니간
먹기ㅇ위해 2명이나 더 친해져야한ㄷㅔ
ㅠ 넘웃기다ㅠㅠ
ㅠㅠㅠ 근데 갑자기ㅣㅣ 오늘은 첫날이라 도시락을 주신다했ㄷㅏ
설렁탕은 나중에 머거야디ㅠ 도시락? 마딛었다 굿 ~
14:00 ~
** 자바 어플리케이션의 기본 구조에 대하여 설명하시오 **
1) 반드시 하나 이상의 class로 구성된다
public class 클래스명{}
2) 반드시 하나의 main 메소드를 가져야 한다
public static void main(String[] args){}
따르지않으면 동작하지않는다.
저장 : 클래스명.java
컴파일(컴퓨터 언어로 변환) : javac 파일명.java
실행 : java 클래스명
/컴퓨터와 사용자가 대화하는 형태의 프로그램/
// 메모리를 확보하기위해 변수를 사용한다
String name;
int age;
name = "홍길동"; <---- O
"홍길동" = name; <---- X
/키보드로 데이터 입력받기/
import.java.util.Scanner;
Scanner sc = new Scanner(System.in);
System.out.print("이름을 입력하세요.");
name = sc.next(); // 문자열 입력받기
System.out.print("나이를 입력하세요.");
age = sc.nextInt(); // 정수 입력받기
/연산자 사용하기/
+
-
*
/
연습문제)
/*
연습) 사용자한테 두개의 정수를 입력받아
사칙연산을 수행한 결과를 출력하는 프로그램을 작성합니다.
변수 2개, Scanner, 사칙연산 자유 (클래스명, 변수명은 자유롭게)
<<실행 예>>
첫번째 수를 입력하시오. 3
두번째 수를 입력하시오. 5
*** 사칙 연산 결과 ***
3 + 5 = __
3 - 5 = __
3 * 5 = __
3 / 5 = __
*/
import java.util.Scanner;
public class Number{
public static void main(String[] args){
int one,two,add,sub,mul,div;
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 수를 입력하시오.");
one = sc.nextInt();
System.out.print("두번째 수를 입력하시오.");
two = sc.nextInt();
add = one + two;
sub = one - two;
mul = one * two;
div = one / two;
System.out.println("*** 사칙 연산 결과 ***");
System.out.println(one + " + " + two + " = " + add);
System.out.println(one + " - " + two + " = " + sub);
System.out.println(one + " * " + two + " = " + mul);
System.out.println(one + " / " + two + " = " + div);
}
}
main 메소드의 명령들을 순차적으로 동작합니다.
일의 순서에 맞게 명령을 내려야 합니다. (과정, 순서가 중요할 수 있다)
!! 만약, 다음과 같이 변수를 선언하기도 전에 사용하는 명령이 오면 오류가 발생한다.
Number.java:8: error: cannot find symbol
/홀,짝 구하기 (방법1)/
// 사용자한테 임의의 수 n을 입력받아 짝수인지 홀수인지 판별하는 프로그램
import java.util.Scanner;
public class EvenOddTest{
public static void main(String[] args){
// 설명문, 주석문
Scanner sc = new Scanner(System.in);
int n;
System.out.print("임의의 수 n을 입력하시오.");
n = sc.nextInt();
/* if 선택문
if(조건식){
condition 참일 때
}else 아니라면 {
condition
}
*/
// %는 나머지 연산자
if(n % 2 == 0){
System.out.println("짝~");
}else{
System.out.println("홀~");
}
}
}
/변수에 값 저장하고 출력하기 (방법2) /
import java.util.Scanner;
public class EvenOddTest2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String result = "";
int n;
System.out.print("임의의 수 n을 입력하시오.");
n = sc.nextInt();
// %는 나머지 연산자
if(n % 2 == 0){
result = "짝~";
}else{
result = "홀~";
}
System.out.println(result);
}
}
/초기값 설정하고 출력하기 (방법3) /
import java.util.Scanner;
public class EvenOddTest3{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String result = "호오올~";
int n;
System.out.print("임의의 수 n을 입력하시오.");
n = sc.nextInt();
if(n % 2 == 0){
result = "짜아악~";
}
System.out.println(result);
}
}
연습문제)
/*
연습) 사용자한테 두개의 정수를 입력받아 그 중에 큰 수를 찾아서 출력하는 프로그램을 작성합니다.
클래스명, 변수명 등은 자유
<<실행 예>>
첫번째 수를 입력하시오. 3
두번째 수를 입력하시오. 4
4 출력
*/
import java.util.Scanner;
public class NumTest{
public static void main(String[] args){
int a, b;
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 수를 입력하시오.");
a = sc.nextInt();
System.out.print("두번째 수를 입력하시오.");
b = sc.nextInt();
if(a > b){
System.out.println(a);
}else{
System.out.println(b);
}
}
}
연습문제) 총점 평균 구하기
/*
연습) 사용자한테 이름, 국어, 영어, 수학을 입력받아 총점과 평균을 각각 구하여 출력하고,
평균이 60점 이상이면 "합격" 그렇지 않으면 "불합격"을 출력하는 프로그램을 작성합니다.
<<실행 예>>
이름을 입력하시오. kim
국어 점수를 입력하시오. 100
영어 점수를 입력하시오. 100
수학 점수를 입력하시오. 100
*** 성적 처리 결과 ***
이름 : ___
국어 : ___
영어 : ___
수학 : ___
총점 : ___
평균 : ___
결과 : 합격/불합격
*/
import java.util.Scanner;
public class Grade {
public static void main(String[] args){
String name, result;
int kor, eng, math, tot, avg;
Scanner sc = new Scanner(System.in);
System.out.print("이름을 입력하시오.");
name = sc.next();
System.out.print("국어 점수를 입력하시오.");
kor = sc.nextInt();
System.out.print("영어 점수를 입력하시오.");
eng = sc.nextInt();
System.out.print("수학 점수를 입력하시오.");
math = sc.nextInt();
tot = kor + eng + math;
avg = tot/3;
if(avg >= 60){
result = "합격";
}else{
result = "불합격";
}
System.out.println("*** 성적 처리 결과 ***");
System.out.println("이름" + " : " + name);
System.out.println("국어" + " : " + kor);
System.out.println("영어" + " : " + eng);
System.out.println("수학" + " : " + math);
System.out.println("총점" + " : " + tot);
System.out.println("평균" + " : " + avg);
System.out.println("결과" + " : " + result);
}
}
>= 크거나 같은가
result = "불합격"; 으로 초기값 설정 후 else없이 if안에 result = "합격"; 만 넣어도 됨
/초기화하지 않으면 오류/
public class Variableinit{
public static void main(String[] args){
int age;
System.out.println(age); //error 초기화되지 않아서 오류
}
}
/Variableinit02/
import java.util.Scanner;
public class Variableinit02{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int age;
System.out.print("몇살?");
age = sc.nextInt(); // 값이 보장되기 때문에 실행가능
System.out.println(age); //error 초기화되지 않아서 오류
}
}
/Variableinit03/
import java.util.Scanner;
public class Variableinit03{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int age;
String result;
System.out.print("몇살?");
age = sc.nextInt();
System.out.println(age);
if(age >= 20){
result = "입장 가능";
}else{
result = "입장 불가능";
}
System.out.println(result);
}
}
/Variableinit04 : result에 초기 값 O/
import java.util.Scanner;
public class Variableinit03{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int age;
String result = "입장 불가능";
System.out.print("가능?");
age = sc.nextInt();
System.out.println(age);
if(age >= 20){
result = "입장 가능";
}
System.out.println(result);
}
}
연습문제)
/*
연습) 정부에서는 40세 이상인 사람들에게 무료 암검진을 실시합니다.
이름과 출생연도를 입력받아 나이를 계산하여 무료 암검진 여부를 판별하고, 결과 출력하기
<<실행 예>>
이름을 입력하시오. kim
출생연도를 입력하시오. 1975
*** 무료 암검진 판별 결과 ***
이름 : ___
나이 : ___
결과 : 무료암검진 대상자 입니다.
*/
import java.util.Scanner;
public class Year{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String name;
int age, year;
System.out.print("이름은?");
name = sc.next();
System.out.print("출생연도는?");
year = sc.nextInt();
age = 2024 - year + 1;
String result = "무료암검진 비대상자 입니다.";
if(age >= 40){
result = "무료암검진 대상자 입니다.";
}
System.out.println("*** 무료 암검진 판별 결과 ***");
System.out.println("이름" + " : " + name);
System.out.println("나이" + " : " + age);
System.out.println("결과" + " : " + result);
}
}
----> 다른 방법
int year, thisYear=2024;
int age;
System.out.print("출생연도를 입력하세요==>");
year = sc.nextInt();
age = thisYear - year;
- 마지막 시간은 오늘 학습한 내용을 요약 정리하고 궁금한 점 개별적으로 질문하기
- 요약정리가 다 끝난 사람들은 pdf 변수 수식과 연산자의 PROGRMMING 7번 풀이 해보기
<<숙제>>
변수 수식과 연산자.pdf 안에
programming 1,2,3,4,5,8,9,10,11,12번 중에 1개 이상을 선택하여 스스로 프로그래밍 해 봅시다.
/*
PROGRAMMING 7
어떤 학생이 이번 학기에 컴퓨터 개론, C언어 프로그래밍, 영어, 일반 수학을 수강 신청하였다고 하자.
각 과목의 점수를 입력하면 그 학생의 이번 학기 평균 점수를 계산하는 프로그램을 작성하라.
컴퓨터 개론 과목의 점수를 입력하시오: 80
C언어 프로그래밍 과목의 점수를 입력하시오: 90
영어 과목의 점수를 입력하시오: 70
일반 수학 과목의 점수를 입력하시오: 80
평균 점수는 80.0점입니다.
*/
import java.util.Scanner;
public class Programming7{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int com, c, eng, meth tot;
System.out.print("컴퓨터 개론 과목의 점수를 입력하시오: ");
com = sc.nextInt();
System.out.print("C언어 프로그래밍 과목의 점수를 입력하시오: ");
c = sc.nextInt();
System.out.print("영어 과목의 점수를 입력하시오: ");
eng = sc.nextInt();
System.out.print("일반 수학 과목의 점수를 입력하시오: ");
meth = sc.nextInt();
tot = com + c + eng + meth;
double avg = tot/4;
System.out.println("평균 점수는" + avg + "점 입니다.");
}
}
'📖' 카테고리의 다른 글
day 0514 배열_메소드 (0) | 2024.05.14 |
---|---|
day 0513 반복문_배열 (1) | 2024.05.13 |
day 0510 선택문_반복문 (0) | 2024.05.10 |
day 0509 연산자_선택문 (0) | 2024.05.09 |
day 0508 자료형_연산자 (0) | 2024.05.08 |