第3章 程序流程控制
1.选择结构程序设计
Java语言提供了两条基本的分支选择语句:if语句和switch语句
双分支选择结构:if/else
单分支选择结构
多分支选择结构:switch
2.if语句
if(表达式) 语句1 else 语句2
3.斐波那契数列
public class chapter3 { public static void main(String[] args) { int f1 = 1, f2 = 1; for (int i = 1; i < 38 / 2; i++) { System.out.println(f1 + "\t" + f2); f1 = f1 + f2; f2 = f2 + f1; } } }
4.李、王、张三人竞选,群众投票表决,试设计一个统计选票的程序
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class chapter3 { public static void main(String[] args)throws IOException{ BufferedReader keyin=new BufferedReader((new InputStreamReader(System.in))); int Ltotal=0,Wtotal=0,Ztotal=0; char name; String c1; System.out.print("enter letter L or W or Z name,# to end:"); c1=keyin.readLine(); name=c1.charAt(0); while(name!='#'){ switch(name){ case 'L': case 'l': Ltotal++; break; case 'W': case 'w': Wtotal++; break; case 'Z': case 'z': Ztotal++; break; } System.out.print("enter letter L or W or Z name,# to end:"); c1=keyin.readLine(); name=c1.charAt(0); } System.out.println("Ltotal="+Ltotal); System.out.println("Wtotal="+Wtotal); System.out.println("Ztotal="+Ztotal); } }
5.
continue结束本次循环,开始下次
break结束循环,跳出
6.编写打印三角形数字图案
public class chapter3 { public static void main(String[] args){ for(int i=1;i<=10;i++){ for(int j=1;j<=11-i;j++){ System.out.print(" "); } for(int j=1;j<=i;j++){ if (i >= 10) { System.out.print(+i+" "); } else{ System.out.print(+i+" "); } } System.out.println(" "); } } }
7.求解8以内阶乘的和
public class chapter3 { public static void main(String[] args){ int n=1,m,s,k=0; while(n<=8){ for(s=1,m=1;m<=n;m++){ s=s*m; } k=k+s; System.out.println(n+"!="+s+" k="+k); n++; } } }
8.求1-100之间的素数
public class chapter3 { public static void main(String[] args){ boolean[] ans=new boolean[101]; for(int i=2;i<101;i++){//初始化ans数组 ans[i]=true; } for(int i=2;i<101;i++){//遍历每个数 int count=2; if(ans[i]==true) { while (i * count <= 100) { ans[i * count] = false; count++; } } else if(ans[i]==false){ continue; } } for(int i=2;i<101;i++){ if(ans[i]==true){ System.out.println(i); } } } }
9.编程求1-10平方的和
public class T3_7 { public static void main(String[] args){ int sum=0; for(int k=1;k<=10;k++){ int tmp=k*k; sum=sum+tmp; } System.out.println(sum); } }
10.编程输入3个数,将他们按从大到小顺序输出
import java.util.*; public class T3_9 { public static void main(String[] args) { int[] num=new int[3]; for(int i=0;i<3;i++) { Scanner input = new Scanner(System.in); num[i] = input.nextInt(); } Arrays.sort(num); for(int i=0;i<3;i++){ System.out.print(num[2-i]+" "); } } }
11.分别用三种循环结构编程求自然数1-50之和
public class T3_10 { public static void main(String[] args){ int sum1=0,sum2=0,sum3=0; for(int i=1;i<=50;i++){ sum1=sum1+i; } int count1=0; while(count1<=50){ sum2=sum2+count1; count1++; } int count2=0; do{ sum3=sum3+count2; count2++; }while(count2<=50); System.out.println(sum1); System.out.println(sum2); System.out.println(sum3); } }
12.编程实现1+3+7+……+(2^20-1)的值
public class T3_11 { public static void main(String[] args){ long tmp=2; long sum=0; for(int i=1;i<=20;i++){ //System.out.println(tmp-1); sum=sum+(tmp-1); tmp=2*tmp; } System.out.println(sum); } }
13.求S=1-1/2+1/3-1/4+1/5-……-1/n;
public class T3_12 { public static void main(String[] args){ double tmp=1; double sum=0; for(int i=1;i<=100;i++){ if(i%2==0){ tmp=(-1)/(double)i; } else if(i%2==1){ tmp=(1)/(double)i; } //System.out.println(tmp); sum=sum+tmp; } System.out.println(sum); } }