public static void main(String[] args) {
for(int i=0; i<10; i++){ if(i==5) break; System.out.print(i); } } }
【运行结果】01234
【程序解析】本程序主要考查break语句的使用。程序中的for循环变量i是从0到9进行循环,正常情况下应该输出0到9,但是由于循环体中有“if(i==5) break;”语句,当i为5时for循环就结束了,因此最后的结果是01234。 2.public class X3_3_2 {
public static void main(String[] args) { int i=5, j=2; while(j 【运行结果】4 【程序解析】本程序主要考查while语句以及“后缀--”运算符的使用。由于每执行一次while判断,i的值就减1,每执行1次循环体,j的值就增加1,而while判断总共经历了“2<5”、“3<4”、“4<3”三次,第3次时由于条件不满足,还没有执行循环体就结束了循环,因此循环体总共执行了2次,j的值也只加了2,而其初始值为2,因此j最后的值为4。 3.public class X3_3_3 { public static void main(String[] args) { int i=4; while(--i>0){ } System.out.print(i); } } 【运行结果】0 【程序解析】本程序主要考查while语句以及“前缀--”运算符的使用。由于i的初值为4,要使“while(--i>0)”结束执行,必须等到i的为0,因此i最后的值为0。 4.public class X3_3_4 { public static void main(String[] args) { int j=0; for(int i=3; i>0; i--){ j += i; int x = 2; while(x 9 } } } 【运行结果】33453456 【程序解析】本程序主要考查for循环和while循环嵌套的情况。在for循环第1次执行到while语句时,j和x的值分别为3和2,此时“while(x 5. public class X3_3_5 { public static void main(String[] args) { int i=8, j=2; while(j< --i) for(int k=0; k<4; k++) j++; System.out.print(j); } } 【运行结果】6 【程序解析】本程序主要考查while循环和for循环嵌套执行的情况。第1次执行“while(j< --i)”时,j和—i的值分别为2和7,条件满足,执行for循环,for循环体共执行了4次,j的值增4,变为6;然后又第2次执行“while(j< --i)”,此时j和—i的值分别为6和6,条件不满足,结束while循环,输出j的值。 6. public class X3_3_6 { public static void main(String[] args) { int a=0, b=1; do{ if(b%2==0) a += b; b++; }while(b <= 100); System.out.print(a); } } 【运行结果】2550 【程序解析】本程序主要考查do…while循环的执行情况。执行循环体之前,a=0,b=1,进入循环体后,由于“b%2==0”的条件不满足,因此直接执行“b++”,b的值变为2,满足“while(b <= 100)”条件,再次进入循环体。此时“b%2==0”的条件满足,语句“a+=b”执行,然后执行“b++”,再进行“while(b <= 100)”判断,如此一直执行下 10 去,直至该条件不满足为止,最后输出a的值。从循环过程来看,只有b为偶数时才加到a中去,因此a的值应该是“2+4+6+…+100”。 7. public class X3_3_7 { public static void main(String[] args) { for(int i=1; i<=10; i++){ if(i<=5) continue; System.out.print(i + \ } } } 【运行结果】6 7 8 9 10 【程序解析】本程序主要考查continue语句的使用情况。由于“if(i<=5) continue;”语句,使得for循环变量i从1到5的循环过程中都不能执行“System.out.print(i + \”,只有i的值从6到10时才执行该语句,因此输出结果为“6 7 8 9 10”。 8. public class X3_3_8 { public static void main(String[] args) { char ch='7'; int r=10; switch(ch+1){ case '7': r += 7; case '8': r += 8; case '9': r += 9; default: } System.out.print(r); } } 【运行结果】27 【程序解析】本程序主要考查switch…case语句,由于“ch+1”的值是'8',因此程序执行了“r += 8;”语句,由于该语句后没有break,因此又执行了后面的“r += 9;”语句,由于r的初值为10,因此r最后的值为27。 9. public class X3_3_9 { public static void main(String[] args) { lable: for(int i=0; i<3; i++){ for(int j=0; j<3; j++){ if(i==j) continue lable; System.out.print(i*3+j+\ } System.out.print(\ } } } 【运行结果】3 6 7 【程序解析】本程序主要考查continue lab语句的运行情况。当程序执行到“continue 11 lable;”语句时,程序直接跳转到外层for循环,执行下一次循环。 10. public class X3_3_10 { public static void main(String[] args) { int j=0; a1: for(int i=3; i>0; i--){ j += i; a2: for(int k=1; k<3;k++){ j *= k; if(i==k) break a1; } } System.out.println(\ } } 【运行结果】j= 16 【程序解析】本程序主要考查break lab语句的执行情况。当程序执行到“break a1;”时,程序流程直接跳出a1所在的外层for循环,输出j的值。 四、编写程序 1.利用if语句,根据下列函数编写一个程序,当键盘输入x值时,求出并输出y的值。 x (x<=1) 3x-2 (1 【参考程序】 import java.io.*; public class X3_4_1 { public static void main(String[] args) throws IOException{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); int x, y; x = Integer.parseInt(br.readLine()); if(x<=1) y = x; else if(x<10) y = 3*x - 2; else y=4*x; System.out.println(\ } } 【运行结果】 9 x = 9 y = 25 3.利用for循环,计算1+3+7+??+(220-1)的和。 12