*3월 15일 내용정리
*복습하기
-Scanner(변수타입) scan(변수명,주소값을 저장)=new(객체생성) Scanner (System.in);
객체를 생성하여 키보드로 입력 받은걸 hip에 값이 저장되고, stack에 주소값이 저장되어 값의 위치를 가르킴
-변수타입은 각각 그릇의 크기가 있다. 그릇구하는 공식 -2^n-1 ~ (2^n-1)-1
-char a ='공백'; 문자는 스페이스바는 코드표를 가지기 때문에 안에 공백을 줌
-String a =""; 문자열은 공백없이 쌍따움표 만 씀
-var로 선언할때 연달아서 쓰는거 인식 안됨
예)var x=1, y=2, z=3; 에러를 떨어트림
var는 바로 선언하는 값의 타입을 보고 타입을 추측 하기 때문에 바로 선언과 동시에 초기화 해준다.
1.JMV의 계산인식
byte a =10+20 //10+20을 컴파일러가 처리하기 때문에 에러가 안난다.
byte a =10;
byte b=10;
byte c=a+b; //위와 같이 변수로 선언하면 JMV가 계산 하기 때문에 JMV는 byte를 4byte로 인식하여 각각 4byte로 할당되어 byte c 에 오버플로어가 되어 에러가 난다.
package study_0315;
import java.util.Scanner;
public class study_0315 {
public static void main(String[] args) {
int a = 340*60*60;
double b = 10.0*10.0*3.14;
//도전과제01 직사각형 넓이 구하기
Scanner scan=new Scanner (System.in);
/*System.out.println("가로를 입력하세요.");
double width = scan.nextDouble();
System.out.println("가로를 입력하세요.");
double height = scan.nextDouble();
System.out.println("넓이는:"+(width*height));*/
//도전과제02 홀수 짝수 판별
/*System.out.println("숫자를 입력하세요.");
int su =scan.nextInt();
if(su%2==0) {
System.out.println("짝수");
}else {System.out.println("홀수");}*/
//프로그래밍 문제02 제곱값 출력하기
/*System.out.println("숫자를 입력하세요.");
int su1 =scan.nextInt();
System.out.println("제곱값은"+su1*su1);*/
//프로그래밍 문제03 원기둥 부피 구하기.
/*System.out.println("반지름을 입력하세요.");
int su2 =scan.nextInt();
System.out.println("높이를 입력하세요.");
int su3 =scan.nextInt();
System.out.println("원기둥의 부피는"+su2*su2*su3*3.14);*/
//프로그래밍 문제04 시간환산문제
/*System.out.println("초 단위를 입력하세요.");
int su4 =scan.nextInt();
int hour=0;
int minute=0;
int second=0;
if(3600>su4) {
minute=su4/60;
second=su4%60;
}else {
hour=su4/3600;
}
System.out.println(hour+"시간"+minute+"분"+second+"초");*/
//프로그래밍 문제06 화씨를 섭씨로바꾸기
/*System.out.println("F(화씨)를 입력하세요.");
double f =scan.nextDouble();
double c= (5.0/9.0)*(f-32.0);
System.out.println("섭씨(c)는"+c);*/
//프로그래밍 문제07 true &false 판별하기
/*System.out.println("숫자를 입력하세요.");
int num =scan.nextInt();
if(num%4==0 && num%5==0) {
System.out.println("true");
}else {
System.out.println("false");
}
if(num%4==0 || num%5==0){
System.out.println("true");
}else {
System.out.println("false");
}
if(num%4==0 || num%5==0 && !(num%4==0 && num%5==0)){
System.out.println("true");
}else {
System.out.println("false");
}*/
//프로그래밍 문제08 각자릿수를 더한 결과
/*System.out.println("숫자를 입력하시요");
int su5 =scan.nextInt();
int x=0;
int y=0;
int z=0;
if(0<su5&&su5<999) {
x=su5%10;
y=(su5/10)%10;
z=(su5/100)%10;
}
System.out.println(x+y+z);*/
//프로그래밍 문제09 졸업여부 확인
/*System.out.println("전공학점 입력하시요");
int su6 =scan.nextInt();
System.out.println("교양학점 입력하시요");
int su7 =scan.nextInt();
System.out.println("일반학점 입력하시요");
int su8 =scan.nextInt();
if(70<=su6) {
if(30<=su7&&30<=su8||80<=su7+su8) {
if(140<=su6+su7+su8) {
System.out.println("졸업!!!");
}else {
System.out.println("졸업불가:총학점이 140점 미만");
}
}else {
System.out.println("졸업불가:교양과 일반 학점미달");
}
}else {
System.out.println("졸업불가:전공학점미달");
}*/
}
}
참고로 아랫부분은 문제에서 좀더 업글하여 소문자로 받으면 대문자로 바꾸는 식을 만들어 보았다.
//프로그래밍 문제05 a->A 로바꾸기
System.out.println("문자를 입력하세요.");
String cc =scan.next();
char ss=cc.charAt(0);
int bb=(int)ss-32;
System.out.println((char)bb);