Java编程思想个人练习
希望大家给予批评指正,在下感激不尽(未完,待续……)
第三章
练习9 (1)分别显示用float和double指数记数法所能表示的最大和最小数字
public class MaxMinFloatDouble { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub float fmax = Float.MAX_VALUE; float fmin = Float.MIN_VALUE; double dmax = Double.MAX_VALUE; double dmin = Double.MIN_VALUE; System.out.println(fmax); System.out.println(fmin); System.out.println(dmax); System.out.println(dmin); /*result: 3.4028235E38 1.4E-45 1.7976931348623157E308 4.9E-324*/ } }
练习(10)编写一个具有两个常量值的程序,一个具有交替的二进制位1和0,其中最低有效位为0,另一个也具有交替的二进制位1和0,但其最低有效位为1(提示:使用十六进制常量来表示最简单的方法).取两个值,用按位操作符以所有可能方式结合运算它们,然后用Integer.toBinaryString()显示
public static void main(String[] args) { int i1 = 0xaaaaaaaa; int i2 = 0x55555555; System.out.println(Integer.toBinaryString(i1)); System.out.println(Integer.toBinaryString(i2)); /** * result * 10101010101010101010101010101010 1010101010101010101010101010101 */ }
练习14 (3)编写一个接收两个字符串参数的方法,用各种布尔值的比较关系来比较这两个字符串,然后把结果打印出来。做==和!=的同时,用equals()作测试。在main()里面用几个不同的字符串对象调用这个方法。
/** * @param args */ public static void main(String[] args) { String str1="hello"; String str2="word"; String str3=new String("hello"); testStr(str1, str2); System.out.println("--------------------------"); testStr(str1, str3); } public static void testStr(String s1,String s2){ //boolean b1=s1>s2; //boolean b2=s1<s2; boolean b3=s1==s2; System.out.println(s1+"=="+s2+":\t"+b3); boolean b4=s1.equals(s2); System.out.println(s1+".equals("+s2+"):\t"+b4); boolean b5=s1!=s2; System.out.println(s1+"!="+s2+":\t"+b5); /**result * * hello==word: false hello.equals(word): false hello!=word: true -------------------------- hello==hello: false hello.equals(hello): true hello!=hello: true */ }
第四章
练习1:(1)写一个程序,打印1到100的值
public static void main(String[] args) { test(100); } public static void test(int num){ int i=0; while(i<num){ System.out.print(++i); if(i!=100){ System.out.print("、"); } } System.out.println(); int j=0; do{ System.out.print(++j); if(j!=100){ System.out.print("、"); } }while(j<100); System.out.println(); for(int k=0;k<100;){ System.out.print(++k); if(k!=100){ System.out.print("、"); } } }
练习2:(2)写一个程序,产生25个int类型的随机数,对于每一个随机数,使用if-else语句来将其分类为大于、小于,或等于紧随它而随机产生的值。
public static void main(String[] args) { test(); } public static void test(){ int num[] =new int[25]; for(int i=0;i<25;i++){ Random r=new Random(); int n=r.nextInt(); num[i]=n; if(i>0){ compare(num[i-1],num[i]); } } } public static void compare(int n1,int n2){ //System.out.println(n1+"、"+n2+"\n n1>n2:"+(n1>n2)+"\t"+"n1==n2:"+(n1==n2)+"\t"+"n1<n2:"+(n1<n2)); if(n1>n2){ System.out.println(n1+"大于"+n2); }else if(n1<n2){ System.out.println(n1+"小于"+n2); }else { System.out.println(n1+"等于"+n2); } }
练习3:(1)修改练习2,把代码用一个while无限循环包括起来。然后运行它直至用键盘中断其运行(通常是通过按Ctrl+c).
练习4:(3)写一个程序,使用两个嵌套的for循环和取余操作符(%)来探测和打印素数(只能被其自身和1整除,而不能被其它数字整除的整数)。
练习5:(4)重复第3章中的练习10,不要用Integer.toBinaryString()方法,而是用三元操作符和按位操作符来显示二进制的1和0。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。