Java编程思想第四版 第四章个人练习

时间:2023-02-22 22:06:54

第四章

练习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).

public static void main(String[] args) {
		test();
	}
	
	public static void test(){
		int num[] =new int[2];
		int i=0;
		boolean flag=false;
		while(true){
			Random r=new Random();
			int n=r.nextInt();			
			if(flag){
				num[i]=n;
				compare(num[0],num[1]);
			}else{
				flag=true;
				num[i]=n;
			}
			i=i==0?1:0;
		}
	}

	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);
		}
	}


练习4:(3)写一个程序,使用两个嵌套的for循环和取余操作符(%)来探测和打印素数(只能被其自身和1整除,而不能被其它数字整除的整数)。

       public static void main(String[] args) {
		test(33);
	}
	
	public static boolean test(int num){
		for(int i=2;i<num;i++){
			if(num%i==0){
				System.out.println(num+" 不是素数");
				return true;
			}
		}
		System.out.println(num+" 是素数");
		return false;
	}



练习5:(4)重复第3章中的练习10,不要用Integer.toBinaryString()方法,而是用三元操作符和按位操作符来显示二进制的1和0。