我是一個新的Java的C++程序員,並且在字符串(或屬性或任何類)的字符串中遇到麻煩。基本的Java程序:字符串對象將不會輸入
import java.util.Scanner;
class Student{
String name;
static int count=0;
int regno;
double marks;
Student(){
count++;
}
static void getCount(){
System.out.println("Count is "+count);
}
void setName(String n1){
name=n1;
}
void setMarks(double m1){
marks=m1;
}
void setRegNo(int rno){
regno=rno;
}
String getName(){
return name;
}
int getRegNo(){
return regno;
}
double getMarks(){
return marks;
}
}
class Demo{
int i;
Student s[]=new Student[3];
Scanner in=new Scanner(System.in);
Demo(){
for(i=0;i<3;i++){
s[i]=new Student();
System.out.println("Enter name of student "+(i+1)+" :");
s[i].setName(in.nextLine());
System.out.println("Enter Reg. No. of student "+(i+1)+" :");
s[i].setRegNo(in.nextInt());
System.out.println("Enter marks of student "+(i+1)+" :");
s[i].setMarks(in.nextDouble());
}
}
public void Display(){
System.out.println("Students with marks >70 : ");
System.out.println("RegNo\tName\tMarks\t");
for(i=0;i<3;i++){
System.out.println(s[i].getRegNo()+"\t"+s[i].getName()+"\t"+s[i].getMarks());
}
}
}
class P4{
public static void main(String args[]){
Demo d=new Demo();
d.Display();
}
}
輸出:
Enter name of student 1 :
1
Enter Reg. No. of student 1 :
1
Enter marks of student 1 :
100
Enter name of student 2 :
Enter Reg. No. of student 2 :
2
Enter marks of student 2 :
100
Enter name of student 3 :
Enter Reg. No. of student 3 :
3
Enter marks of student 3 :
100
Students with marks >70 :
RegNo Name Marks
1 1 100.0
2 100.0
3 100.0
的麻煩: 從for循環的第二次迭代,則直接要求我輸入REGNO和標記跳過名稱String.I不明白怎麼它適用於第一次迭代,但不適用於其他人。請解釋我在這裏出了什麼問題。
大!!工作,只需要用in.next()替換in.nextLine()。 (我希望Scanner的緩衝區清除自己,但它沒有) – Shridharshan 2014-09-03 08:21:55