关于数组的不同方式输出值的问题 int [][]s1=new int [3][2];

public class array
{
public static void main(String args[])
{



int [][]s1=new int [3][2];
System.out.println(s1);//输出的是[[I@15db9742;其中@左边的是实体的类型,右边的是数组地址
System.out.println(s1[0]);//输出的是角标为0的一维数组的地址
System.out.println(s1[0][0]);//输出的是二维数组中角标为0的一维数组中的角标为0的元素值
//实体内存中创建的时候会自动分配内存,分配完内存之后会默认初始化为指定类型的默认出初始值;
//int类型的为0    引用类型的类型的为null,double类型的为0.0
int [][]s2=new int[3][];
System.out.println(s2);//输出2维数组的地址
System.out.println(s2[0]);//输出二维数组中下表为0的一维数组的地址
System.out.println(s2[0][0]);//因为在二位数组中的下表为0的一维数组的值为null,所以抛出了空指针异常!






}
}
public class StudentDemo { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 判断类型并循环输入 String stuNo, name, str; double english, math, Java, testScore = 1.0; double sum2 = 0, sum3 = 0; while (in.hasNext()) { String line = in.nextLine(); String[] fields = line.split(" "); //字符串 line 按照空格分隔符进行拆分,拆分后的结果存储在一个名为 fields 的字符串数组中 stuNo = fields[0]; //取 fields 数组的第一个元素,即该语句将 fields 数组的第一个元素的赋给了变量 stuNo name = fields[1]; english = Double.parseDouble(fields[2]); math = Double.parseDouble(fields[3]); Java = Double.parseDouble(fields[4]); if (fields.length == 5) { // 学生PT Student s1 = new StudentPT(stuNo, name, english, math, Java, testScore); System.out.println(s1.toString()); } else if (fields[5].equals("SystemFramework")) { // 学生SJ Student s2 = new StudentSJ(stuNo, name, english, math, Java, testScore); System.out.println(s2.toString() + " task:SystemFramework"); sum2 = s2.sum(); } else if (fields[5].equals("GroupLeader")) { // 学生ZZ Student s3 = new StudentZZ(stuNo, name, english, math, Java, testScore); System.out.println(s3.toString() + " duty:GroupLeader"); sum3 = s3.sum(); } else { break; } } //比较大小 double max = Math.max(sum2,sum3); if(max == sum2){ System.out.println("Lisi's total score is more than Wangwu"); }else if(max == sum3){ System.out.println("Lisi's total score is less than Wangwu"); } } } 如何将三组数据的输出循序更改
最新发布
05-25
可以改变输入数据的顺序,或者修改代码中的循环结构。下面是一种修改循环结构的方式,将每组数据的输入和输出放在一个循环中,循环内部根据输入的第一个字段判断学生类型并输出对应信息: ``` public class StudentDemo { public static void main(String[] args) { Scanner in = new Scanner(System.in); String stuNo, name, str; double english, math, Java, testScore = 1.0; double sum2 = 0, sum3 = 0; int i = 1; while (i <= 3) { // 循环三次输入和输出 System.out.println("请输入第" + i + "个学生信息:"); String line = in.nextLine(); String[] fields = line.split(" "); stuNo = fields[0]; name = fields[1]; english = Double.parseDouble(fields[2]); math = Double.parseDouble(fields[3]); Java = Double.parseDouble(fields[4]); if (fields.length == 5) { Student s1 = new StudentPT(stuNo, name, english, math, Java, testScore); System.out.println(s1.toString()); } else if (fields[5].equals("SystemFramework")) { Student s2 = new StudentSJ(stuNo, name, english, math, Java, testScore); System.out.println(s2.toString() + " task:SystemFramework"); sum2 = s2.sum(); } else if (fields[5].equals("GroupLeader")) { Student s3 = new StudentZZ(stuNo, name, english, math, Java, testScore); System.out.println(s3.toString() + " duty:GroupLeader"); sum3 = s3.sum(); } i++; } double max = Math.max(sum2,sum3); if(max == sum2){ System.out.println("Lisi's total score is more than Wangwu"); }else if(max == sum3){ System.out.println("Lisi's total score is less than Wangwu"); } } } ``` 这样修改后,每次输入完一组数据后就会立即输出对应的信息,再进入下一轮输入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值