at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
에러 발생!
num = Integer.parseInt(str);
여기서 나타난 문제가 NumberFormatException이다.
수를 의미하는 문자열을 받아야 정수로 변환할 수 있지만 수를 입력받지 못하고 엔터를 누를 경우 NULL값이 입력되어 에러가 발생하는 것이다.
2012년 12월 28일 금요일
2012년 12월 27일 목요일
오늘 내가 만들어본 클래스 객체!!!(돈 세는 프로그램)
public class Practice1 {
private int money;
private int per;
private int bal;
private int k;
int[] temp = new int[8];
public Practice1(int money, int per){
this.money = money;
this.per = per;
temp[0] = money;
temp[1] = money-per;
this.bal = temp[1];
k = 2;
}
public void calc(){
for(int i=2; i<8; i++)
{
money = money/k;
temp[i] = bal/(money);
bal = bal-(money*temp[i]);
if(k==2)
k=5;
else
k=2;
}
}
public void disp(){
System.out.println("손님이 지불한 금액: " + temp[0]);
System.out.println("손님이 구입한 금액: " + per);
System.out.println("잔돈내역");
System.out.println("거스름 돈" + temp[1]);
System.out.println("오천원" + temp[2]);
System.out.println("천원" + temp[3]);
System.out.println("오백원" + temp[4]);
System.out.println("백원" + temp[5]);
System.out.println("오십원" + temp[6]);
System.out.println("십원" + temp[7]);
System.out.println();
}
}
----------------------------------------------------------------
public class Main {
public static void main(String[] args) {
Practice1 mi = new Practice1(10000, 2520);
mi.calc();
mi.disp();
Practice1 mi2 = new Practice1(12020, 3045);
mi2.calc();
mi2.disp();
}
}
[Java] Scanner 클래스
오늘 배운 클래스!
java.util
키보드의입력값을 읽어 들일 수 있는 클래스이다.
BufferedReader를 사용하기가 번거로웠는데 편한듯하다.
이 클래스를 이용해서 정수나 문자열 입력이 편리하다.
모든 클래스는 Object클래스를 상속한다. Object클래스 안에 기본적으로 제공되는 메서드가 많이 있는데 그중 equals()를 사용하면 데이터끼리의 비교를 해볼 수 있어 편리하다.
import java.util.Scanner;
public class Mission2 {
public static void main(String[] args) {
int kor, eng, mat;
int sum;
double aver;
Scanner scan = new Scanner(System.in);
System.out.println("국어성적을 입력하세요 : ");
kor = scan.nextInt();
System.out.println("영어성적을 입력하세요 : ");
eng = scan.nextInt();
System.out.println("수학성적을 입력하세요 : ");
mat = scan.nextInt();
sum = kor + eng + mat;
aver = (double)sum / 3;
if(aver<60)
System.out.println("당신은 F학점입니다.");
else if(aver<70)
System.out.println("당신은 D학점입니다.");
else if(aver<80)
System.out.println("당신은 C학점입니다.");
else if(aver<90)
System.out.println("당신은 B학점입니다.");
else
System.out.println("당신은 A학점입니다.");
System.out.println("총합 : " + sum + "점");
System.out.println("평균 : " + (int)aver + "점");
}
}
java.util
Class Scanner
java.lang.Object java.util.Scanner
키보드의입력값을 읽어 들일 수 있는 클래스이다.
BufferedReader를 사용하기가 번거로웠는데 편한듯하다.
이 클래스를 이용해서 정수나 문자열 입력이 편리하다.
모든 클래스는 Object클래스를 상속한다. Object클래스 안에 기본적으로 제공되는 메서드가 많이 있는데 그중 equals()를 사용하면 데이터끼리의 비교를 해볼 수 있어 편리하다.
import java.util.Scanner;
public class Mission2 {
public static void main(String[] args) {
int kor, eng, mat;
int sum;
double aver;
Scanner scan = new Scanner(System.in);
System.out.println("국어성적을 입력하세요 : ");
kor = scan.nextInt();
System.out.println("영어성적을 입력하세요 : ");
eng = scan.nextInt();
System.out.println("수학성적을 입력하세요 : ");
mat = scan.nextInt();
sum = kor + eng + mat;
aver = (double)sum / 3;
if(aver<60)
System.out.println("당신은 F학점입니다.");
else if(aver<70)
System.out.println("당신은 D학점입니다.");
else if(aver<80)
System.out.println("당신은 C학점입니다.");
else if(aver<90)
System.out.println("당신은 B학점입니다.");
else
System.out.println("당신은 A학점입니다.");
System.out.println("총합 : " + sum + "점");
System.out.println("평균 : " + (int)aver + "점");
}
}
[Java] 연산자에서 부족한 것들
String str = "num = " + 30; //입력 가능, 출력결과 => num = 30
str = "num = " + 30 + 40; //이때의 결과는? 출력결과 => num = 3040
str = 30 + 40 + "num = "; // 출력결과 => 70num =
위의 예제에서 보면 문자열에 정수나 소수를 더하면 항상 문자열이 되는 것을 알 수 있다.
그러나 왼쪽부터 나가다가 만나는 문자열에서는 연산자부터 수행된다.
str = "num = " + 30 + 40; //이때의 결과는? 출력결과 => num = 3040
str = 30 + 40 + "num = "; // 출력결과 => 70num =
위의 예제에서 보면 문자열에 정수나 소수를 더하면 항상 문자열이 되는 것을 알 수 있다.
그러나 왼쪽부터 나가다가 만나는 문자열에서는 연산자부터 수행된다.
2012년 12월 26일 수요일
[Java] (캐스팅) 강제 형변환
public class Mission2 {
public static void main(String[] args) {
int kor, eng, mat;
int sum;
double aver;
kor = 100;
eng = 90;
mat = 80;
sum = kor + eng + mat;
aver = (double)sum / 3;
System.out.println("총합 : " + sum + "점");
System.out.println("평균 : " + (int)aver + "점");
}
}
캐스팅은 큰 자료형에서 작은 자료형으로 값을 대입할 때 일어난다.
에러는 나타나지 않지만 값을 잃어버리는 단점이 있다.(당연한 것이다.)
[Java] 처음 그리고 변수
public class Mission1 {
public static void main(String[] args) {
int num = 0;//지역변수 선언(메모리 4바이트 할당)
//지역변수는 반드시 변수를 초기화 해야한다.
String str = "";//문자열을 초기화
str = str + "abc";
num = num + 10;
System.out.println(str);
System.out.println("num = " + num);
}
}
변수와 문자열 선언 및 초기화
변수를 지정하는 이유는 저장할 수 있는 값의 종류와 범위에 따라
잘 구별해야하기 때문이다. 즉, 데이터의 관리차원에서 원활한 관리를 위해서다.
-------------------------------------------------------
public class Mission2 {
public static void main(String[] args) {
int kor, eng, mat;
int sum, aver;
kor = 100;
eng = 90;
mat = 80;
sum = kor + eng + mat;
aver = sum / 3;
System.out.println("총합 : " + sum + "점");
System.out.println("평균 : " + aver + "점");
}
}
아주아주 간단한 성적 출력 프로그램
Start to Java
gogogo
package kosta.hello;
public class Hello {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
}
}
이클립스에서 중요한 단축키
한줄 복사 : Ctrl + Alt + 방향키 아래 or 위
출력문 자동쓰기 : sysout + Ctrl + Space
선택된 줄 주석처리 : Ctrl + /
자동 들여쓰기 : Ctrl + Shift + F
package kosta.hello;
public class Hello {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
System.out.println("wow");
}
}
이클립스에서 중요한 단축키
한줄 복사 : Ctrl + Alt + 방향키 아래 or 위
출력문 자동쓰기 : sysout + Ctrl + Space
선택된 줄 주석처리 : Ctrl + /
자동 들여쓰기 : Ctrl + Shift + F
피드 구독하기:
글 (Atom)