성적 입출력 프로그램 질문입니다
늘솜
import java.io.*;
class Student{
public String name=;
public String number=;
public String JAVA=;
public String CPP=;
public String DBMS=;
}
public class Test1{
public static void main(String[] ar)throws java.io.IOException{
int menu = 0;
boolean boolflag = true;
Student sd = new Student();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(boolflag){
System.out.println(1. 성적 입력);
System.out.println(2. 성적 출력);
System.out.println(3. 종료);
System.out.print(메뉴의 번호를 선택해주세요 : );
try {
menu = Integer.parseInt(br.readLine());
}catch(Exception e) {
System.out.println(1-3까지의 숫자로 입력해주세요.);
}
switch(menu){
case 1:
System.out.println(성적입력);
System.out.print(이름 : );
sd.name = br.readLine();
System.out.print(학번 : );
sd.number = br.readLine();
System.out.print(JAVA : );
sd.JAVA = br.readLine();
System.out.print(C++ : );
sd.CPP = br.readLine();
System.out.print(DBMS : );
sd.DBMS = br.readLine();
break;
case 2:
if(sd.name=null){ //-----------이부분
System.out.println(값이 입력되지 않았습니다. 다시 입력해 주세요);
break;
}
else{
int a1 = Integer.parseInt(sd.JAVA);
int a2 = Integer.parseInt(sd.CPP);
int a3 = Integer.parseInt(sd.DBMS);
int sum = a1+a2+a3;
float avg = sum/3.0f;
System.out.println(성적 출력);
System.out.println(이름 : +sd.name);
System.out.println(학번 : +sd.number);
System.out.println(JAVA : +sd.JAVA);
System.out.println(C++ : +sd.CPP);
System.out.println(DBMS : +sd.DBMS);
System.out.println(총점 : +sum);
System.out.println(평균 : +avg);
break;
}
case 3:
System.out.println(프로그램을 종료합니다.);
boolflag = false;
break;
}
}
}
}
2번을 선택해서 성적을 출력할 때에 받은 값이 없으면(위에서는 name값이 null로 되어있을 때에)다시 입력받게 하려고 합니다
그런데 위에 쓴대로 하면 오류가 나더군요...
자바 배운지도 얼마안되고 이것도 인터넷 찾아가면서 했는데 안돌아가니깐 답답하군요...
어떤식으로 고쳐야되나요?
-
꽃가람
if (sd.name == null || sd.name.length() == 0) {
System.out.println(\값이 입력되지 않았습니다...\);
return;
}
이렇게 하면 되지 않을런지요? -
WhiteCat
추가적으로
값이 없다라는건 String 에 값이 없다는거지 null인거는 아닐텐데요..
.equals(\\)로 체크하셔야 원하는 동작을 할거 같네요.. -
마음새
if(sd.name=null) == \=\ 하나뿐이 없네요...........