Java程序设计基础------流程控制

紧接着上一篇 的博客,这次来说一说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();

		}
	}
}

最后一道题目解法很多,我的解法不是最好的,有兴趣的人可以尝试一下!上面有错误的地方请批评指正!

最后,还是那句话,有兴趣的小伙伴可以一起学习交流啊!

 

你可能感兴趣的:(Java程序设计)