紧接着上一篇 的博客,这次来说一说Java中的流程控制,只看题目,不讲语法!从题目中学习Java的流程控制。
从键盘输入一个0--100的成绩,用switch语句实现优良中及格不及格五等,并输出。
import java.util.Scanner; public class Demo1 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); int num; System.out.println("请输入一个整数:"); num = scanner.nextInt(); switch (num/10) { case 9 : case 10 : System.out.println("优秀"); break; case 8 : System.out.println("良好"); break; case 7 : System.out.println("中等"); break; case 6 : System.out.println("及格"); break; default: System.out.println("不及格"); break; }
switch语句中的重点就是switch后面跟的只能是:除了浮点型和字符型,其他都支持,同时case后面的类型要跟switch后面的数据类型保持一致!!
从键盘输入一个数,判断该数是否可以被3整除并且被7整除。
import java.util.*; class App4_8 { public static void main(String[] args) { Scanner reader = new Scanner(System.in); int num; num = reader.nextInt(); if (num%7 == 0 && num%3 == 0) { System.out.println("这个数满足条件"); } else { System.out.println("这个数不满足条件"); } } }
这题就是简单的输入输出加上简单的if判断。
在键盘上输入n,编程计算sum=1-1/2!+1/3!-...(-1)(n-1)次方*1/n!的值。
import java.util.Scanner; public class Demo2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n; int flag = -1; float add_sum = 0; int mul_sum; System.out.println("请输入一个整数:"); n = scanner.nextInt(); for (int i = 1; i <= n; i++) { mul_sum = 1; for (int j = 1; j <= i; j++) { mul_sum *= j; } flag = flag * -1; add_sum = (float) (add_sum + 1.0/(flag * mul_sum)); } System.out.println(add_sum); } }
注意点:数据类型一定要预先设定好,还要注意符号的变化!
编写Java程序,在键盘上输入n,计算并输出1!+2!+...+n!的结果
import java.util.*; public class App4_4 { public static void main(String[] args) { int num; int add; int sum = 0; System.out.println("请输入一个整数n:"); Scanner reader = new Scanner(System.in); num = reader.nextInt(); for (int i = 1;i <= num ;i++ ) { add = 1; for (int j = 1;j <= i ;j++ ) { add = add * j; } sum = sum + add; } System.out.println(sum); } }
注意点:每一次的第二个循环之前,add这个参数的值要重新赋值为1!!!
求出所有的水仙花数。
import java.util.*;//求出所有的水仙花数 public class App4_5 { public static void main(String[] args) { int i; int a,b,c; for (i = 100;i <= 999 ;i++) { a = i/100; b = i/10%10; c = i%10; if (a*a*a+b*b*b+c*c*c == i) { System.out.println(i); } } } }
从键盘上输入一个整数,判断该数是否为完全数,完全数是所有因数(不包含自身)的和等于自身的数,例如28=1+2+4+7+14。
import java.util.*; public class App4_6 { public static void main(String[] args) { int i; int num; int sum = 0; Scanner reader = new Scanner(System.in); num = reader.nextInt(); for (i = 1;i < num ; i++) { if (num%i == 0) { sum+=i;//可以进行优化,减少一半的循环 } } if (sum == num) { System.out.println("这个数是完全数"); } else { System.out.println("这个数不是完全数"); } } }
计算并输出一个整数各位数字之和。
import java.util.Scanner; public class Demo3 { public static void main(String[] args) { // TODO 自动生成的方法存根 Scanner scanner = new Scanner(System.in); System.out.println("请输入一个整数:"); int num = scanner.nextInt(); int sum = 0; do { sum += num%10; num = num/10; } while (num!=0); System.out.println("各位数字之和是:"+sum); } }
设有一长3000米的绳子,每天减去一半,问需要几天,绳子的长度会小于5米?
public class Demo4 { public static void main(String[] args) { // TODO 自动生成的方法存根 double n = 3000; int day = 0; while (n >= 5) { n = n/2; day++; } System.out.println("绳子需要"+day+"天会小于5米"); } }
注意点:数据类型要注意!
编程输出以下图案:
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
class Diff { public static void main(String[] args) { int i; int j; int sumi = 1; int sumj = 0; for (i = 0;i <= 4 ;i++ ) { sumi = sumi + i; System.out.print(sumi); System.out.print(" "); sumj = sumi; for (j = i+2;j <= 5 ;j++ ) { sumj = sumj + j; System.out.print(sumj); System.out.print(" "); } System.out.println(); } } }
最后一道题目解法很多,我的解法不是最好的,有兴趣的人可以尝试一下!上面有错误的地方请批评指正!
最后,还是那句话,有兴趣的小伙伴可以一起学习交流啊!