《Java语言程序设计》(基础篇原书第10版)第五章复习题答案

第五章
5.1:在下面代码中,Point A, Point B和Point C处,count < 0总是false。
5.2:guess的值可能跟随机抽出的值相等,导致while循环可能不会执行,也就无法输入guess的值。
5.3:a)中代码while无限循环重复操作,由于i%2==0不成立,所以无任何输出内容。
b)中的代码重复无数次,由于if的条件不成立,所以无任何内容输出。
c)中的代码由于自增的作用,所以会重复九次操作,输出3,5,7,9结果。
5.4:输出结果为:
max is 5
number 0
5.5:输出结果为
x is -2147483648
因为在二进制中,首位是0表示该数是正数,1表示该数是负数,随着x自增到2147483648时,除了首位,后面位置全是1,所以此时首位要进一位变成1,所有就变成-2147483648,此时二进制位数已满,所以不会再增加。
5.6:输出结果为:
max is 5
number 0
5.7:while先判断后执行,do-while先执行后判断;当不满足循环条件是,while循环一次都不会执行,do-while至少执行一次。
Scanner input = new Scanner(System.in);
int sum = 0;
System.out.println(“Enter an integer”+“(the input ends if it is 0)”);
int number = input.nextInt();
do{
sum += number;
System.out.println(“Enter an integer”+“(the input ends if it is 0)”);
Number = input.nextInt();
} while (number != 0);
5.8:sum 具有相同的值,因为前缀还是后缀的自增都达到了让i自增1.
5.9:for(表达式1;表达式2;表达式3)
表达式1:控制变量的初始值
表达式2:循环的判断条件,决定是否终止循环
表达式3:是进行循环体操作后。
5.10:输出结果:
sum is 14
count is 5
5.11:循环体无限循环下去。
5.12:在for循环里声明一个变量,在退出循环后是不可以再使用它的。
5.13:while循环
long sum = 0;
int i = 0;
while ( i <= 1000 ){
sum = sum + i;
i++;
}

do while 循环
long sum = 0;
int i = 0;
do {
sum = sum + i;
i++;
} while(i <=1000 );
5.14:
a)重复n次
b)重复n+1次
c)重复n-5次
d)重复(n-6)/ 3次
5.15:可以将for循环转换成while循环;使用for循环更加适用于循环的开始和结束已知,循环次数固定的场合。
5.16:一定条件下while循环可以转换成for循环;
int i = 1;
int sum = 0;
for ( sum = 0; sum < 10000; sum++){
sum = sum + i;
i++;
}
5.17:for循环没有大括号括起来,if条件表达式后直接加了分号,do-while循环中,while的语句后没有加分号。
public class Test {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
sum += i;
}
if (i < j) {
System.out.println(i);
}
else {
System.out.println(j);
}
while ( j < 10) {
j++;
}
do {
j++;
} while (j < 10)
}
}
5.18:a)do-while(i < 10)后需要加分号“;”
b)for循环的表达式(int i = 0; i < 10; i++)后不用加分号。
5.19:println语句不会执行,没加分号会直接报错;
5.20:
a)输出结果
0 0 1 0 1 2 0 1 2 3
b)输出结果



2 ****
3 2 ****
4 3 2 ****

c)输出结果:
1xxx2xxx4xxx8xxx16xxx
1xxx2xxx4xxx8xxx
1xxx2xxx4xxx
1xxx2xxx
1xxx
d)输出结果
1G
1G3G
1G3G5G
1G3G5G7G
1G3G5G7G9G

5.21:程序还会工作(输到程序里验证)
5.22:char 与 int型数据做运算时,会自动提升为int型,而hexDigit为char型。
5.23:245循环两次,3245循环三次。
5.24:用break语句可以使得流程跳出switch语句体,也可以用break语句在循环结构终止本层循环体,从而提前结束本层循环;continue语句的作用是跳过本次循环体中余下的尚未执行的语句,立即进行下一次的循环条件判定。
a)输出结果为:Balance is 1
b)程序不能够结束。
5.25:
int i=-1,sum=0;
while (++i<4){
if ( i%3 == 0){
continue;
sum += 1;
}
}
5.26:
package pr;

public class TestBreak {
public static void main(String[] args) {
int sum = 0;
int number = 0;

	  do {
			number++;
			sum += number;
	  } while (sum < 100);
		System.out.println("The number is " + number);
		System.out.println("The sum is " + sum);
	}
}

public class TestContinue {
public static void main(String[] args) {
int sum = 0;
int number = 0;

	do {
		number++;
		if (number == 10 || number == 11)
			number = 12;
		sum += number;
			
	} while (number < 20);
	
	System.out.println("The sum is "+sum);
}

}

5.27:
a)中break语句后执行System.out.println(i);语句。

b)中continue语句后执行 j++ 语句。

你可能感兴趣的:(《Java语言程序设计》(基础篇原书第10版)第五章复习题答案)