课后实验总结
1.
由此可见,Java中数据是按照补码的形式储存的。
2.同名屏蔽原则:局部变量可以与全局变量同名,局部变量覆盖全局变量。
3.一般来说在实线两端都是由低精度指向高精度的类型,所占的位数从低到高,范围从小到大,所以可得出,低精度向高精度转化不丢失精度,反之,从高精度传向低精度则会损失。
4.
String 和其它数据类型相加,结果是一个新的String,所以第一次输出的+a+b被当做了String类型进行相加,而不是进行了计算。
5.实验一:
package zuoye2; import java.util.*; import java.util.Scanner; public class compare { public static void main(String [] args) { int flag=0,i; java.lang.String str2[]=new String[100000]; String str[]=new String[]{"+","-","*","/"}; Random rd=new Random(); for(i=1;i<=30;i++) { int a=rd.nextInt(99); int b=rd.nextInt(99); int c=rd.nextInt(4); if(str[c]=="/") { if(a%b==0) str2[i]=i-1+": "+a+"/"+b+"="; else {i=i-1;continue;} } if(str[c]=="-") { if(a>=b) str2[i]=i-1+": "+a+str[c]+b+"="; else {i=i-1;continue;} } if(c==0||c==2) str2[i]=i-1+": "+a+str[c]+b+"="; } for(int r=1;r<=30;r++) { System.out.println(str2[r]); } } }
实验二:
package zuoye2; import java.util.*; import java.util.Scanner; public class compare { public static void main(String [] args) { Scanner sca=new Scanner(System.in); int flag=0,i; java.lang.String str2[]=new String[100000]; int w=sca.nextInt(); String str[]=new String[]{"+","-","*","/"}; Random rd=new Random(); for(i=1;i<=w;i++) { int a=rd.nextInt(99); int b=rd.nextInt(99); int c=rd.nextInt(4); if(str[c]=="/") { if(a%b==0) str2[i]=i-1+": "+a+"/"+b+"="; else {i=i-1;continue;} } if(str[c]=="-") { if(a>=b) str2[i]=i-1+": "+a+str[c]+b+"="; else {i=i-1;continue;} } if(c==0||c==2) str2[i]=i-1+": "+a+str[c]+b+"="; for(int r=1;r<i;r++) { if(str2[i]==str2[r]) { flag=0; i=i-1; //continue; } else flag=1; } if(flag==1) { System.out.println(str2[i]); } } } }