JAVA范例 三)条件控制语句(1)

实例14  判断输入的年份是否为闰年

import java.util.Scanner;

public class Control_01 {
	public static void main(String[] args) {
		System.out.println("请输入需要进行判断是否为闰年的年份:");
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine(); 				// 从控制台上获取录入的信息
		if (str.length() != 4) { 					// 判断输入是不是合法的年份
			System.out.println("请输入正确的4位数!!");
		}
		int year = Integer.parseInt(str);			// 将字符串转换成int型
		boolean flag1 = year % 400 == 0; 		// 判断是否能被400整除,返回一个布尔值
		boolean flag2 = (year % 4 == 0) && (year % 100 != 0); 
		// 判断是否能被4整除但不能被100整除,返回一个布尔值
		String message = (flag1 || flag2) ? "是闰年" : "不是闰年"; 		// 利用条件运算符得出year是否是闰年
		System.out.println(year + " " + message); 				// 打印出相应的信息
	}
}

 

 实例15  抽奖活动

import java.util.Random;

public class Control_02 {
	final static int num = 4;				//设置抽奖号码的字符个数
	public static void main(String[] args) {
		Random rd = new Random();		//创建Random对象
		String str = "";
		for (int i = 0; i < num; i++) {		//连续生成4个范围在0和1之间的随机数
			String s = rd.nextInt(2) + "";
			str = str + randomSelection(s);	//将调用randomSelection方法后产生的结果连接在一起
		}
		System.out.println("您的抽奖符号为:" + str);
		System.out.println(drawaLottery(str));
	}
	public static String randomSelection(String str) {//根据随机数获取相应的符号
		if (str.equals("1")) {					//1:表示实体五角星;0:表示空心五角星
			return "★";
		} else {
			return "☆";
		}
	}
	public static String drawaLottery(String str) {	//根据生成的符号来兑奖
		if (str.equals("★★★★")) {
			return "恭喜您抽取了本次活动的一等奖,奖励人民币1000万元";
		} else if (str.equals("★★★☆")) {
			return "祝贺您抽取了本次活动的二等奖,奖励人民币80万元";
		} else if (str.equals("★★☆☆")) {
			return "祝贺您抽取了本次活动的三等奖,奖励人民币8000元";
		} else {
			return "谢谢您的参与!!";
		}
	}
}

 

实例16  小九九乘法表

public class Nine {
	public static void main(String[] args) {
		for (int i = 1, j = 1; j <= 9; i++) {
			System.out.print(i + "*" + j + "=" + i * j + " ");
			if (i == j) {
				i = 0;
				j++;
				System.out.println();
			}
		}
	}
}

 

实例17  如何列出素数

import java.util.Arrays;

public class ForCycle_06 {
	private static boolean[] primeNumber(int num){	//求质数
		if(num<=0){						//检查指定的范围
			System.out.println("范围必须大于0");
			return null;
		}
		boolean[]primes=new boolean[num+1];	//声明布尔类型数组,长度为范围+1.
		primes[1]=false;					//将特殊数字1抛出,因为1不是质数
		Arrays.fill(primes, 2,num+1,true);		//将布尔数组元素的值都赋为true
		int n=(int)Math.sqrt(num);				//Math.sqrt方法用于求开方
		for(int i=1;i<n;i++){
			if(primes[i]){					//如果是质数,那么i的倍数不是质数
				for(int j=2*i;j<=num;j+=i){
					primes[j]=false;
				}
			}
		}
		return primes;
	}
	public static void showPrimeNumber(int num){		//显示质数
		boolean [] primes=primeNumber(num);		//调用方法赋值给布尔类型的数组
		int n=0;
		if(primes!=null){
			for(int i=1;i<primes.length;i++){			//循环数组操作数组的元素
				if(primes[i]){					//如果数组元素值为true,则下标值为质数
					System.out.print(i+" ");		//输出质数
					if(++n%10==0)				//以每行10个质数输出
						System.out.println();
				}
			}
			System.out.println();
		}
		System.out.println("一共有"+n+"个");
	}
	public static void main(String[] args) {		
		int num = 100;							//声明求质数的范围
		System.out.println("范围在"+num+"内的质数有:");
		showPrimeNumber(num);					//调用方法显示质数
	}
}

  

实例18  Java中的递归

public class ForCycle_07 {
	public static int circleFactorial(int n) { 			// 利用循环的方式求阶乘
		int sum = 1;
		if (n < 0) {								// 判断参数n是否为负数
			throw new IllegalArgumentException("必须为正整数!");	// 抛出不合理参数异常
		}
		for (int i = 1; i <= n; i++) { 								// 执行n次循环操作
			sum *= i; 										// 每循环一次进行乘法运算
		}
		return sum; // 返回阶乘的值
	}
	public static int recursiveFactorial(int n) { 						// 利用递归算法求阶乘
		int sum = 1;
		if (n < 0)
			throw new IllegalArgumentException("必须为正整数!");	// 抛出不合理参数异常
		if (n == 1) {
			return 1; 										// 如果n=1则跳出循环
		} else {
			sum = n * recursiveFactorial(n - 1); 					// 运用递归计算
			return sum;
		}
	}
	public static void main(String[] args) {
		int n = 5;
		System.out.println("利用循环的方式求" + n + "的阶乘" +
				"\n其结果为:" 								// 调用circleFactorial
				+ circleFactorial(n)+"\n");
		System.out.println("利用递归算法求" + n + "的阶乘" +
				"\n其结果为:" 								// 调用recursiveFactorial
				+ recursiveFactorial(n));
	}
}

 

实例19 男生女生各多少人?

public class ForCycle_02 {
	public static void main(String[] args) {
		ForCycle_02 fc02 = new ForCycle_02(); 		// 创建本类的实例,用于调用本类的方法
		int sum; 								// 定义和的属性
		System.out.println("100~999之间的水仙花数为:");
		for (int i = 100; i <= 999; i++) { 	// 因为题意给出水仙花数是一个三位数,所以100-999就是它的范围
			int a = fc02.getSumOfCubic(i / 100);			// i / 100算出的是百位上的数字
			int b = fc02.getSumOfCubic((i / 10) % 10);		// (i / 10) % 10算出的是十位上的数字
			int c = fc02.getSumOfCubic(i % 10);			// i % 10算出的是个位上的数字
			sum = a + b + c;						//求三者之间的和
			if (sum == i) { 		// 判断该数如果等于其各位上的立方和,就打印出该数字即是 水仙花数
				System.out.print(i + "  ");
			}
		}
	}
	public int getSumOfCubic(int num) { 				// 用于计算参数num的立方和
		num = num * num * num;
		return num;
	}
}

 

实例20  求水仙花数

public class ForCycle_02 {
	public static void main(String[] args) {
		ForCycle_02 fc02 = new ForCycle_02(); 		// 创建本类的实例,用于调用本类的方法
		int sum; 								// 定义和的属性
		System.out.println("100~999之间的水仙花数为:");
		for (int i = 100; i <= 999; i++) { 	// 因为题意给出水仙花数是一个三位数,所以100-999就是它的范围
			int a = fc02.getSumOfCubic(i / 100);			// i / 100算出的是百位上的数字
			int b = fc02.getSumOfCubic((i / 10) % 10);		// (i / 10) % 10算出的是十位上的数字
			int c = fc02.getSumOfCubic(i % 10);			// i % 10算出的是个位上的数字
			sum = a + b + c;						//求三者之间的和
			if (sum == i) { 		// 判断该数如果等于其各位上的立方和,就打印出该数字即是 水仙花数
				System.out.print(i + "  ");
			}
		}
	}
	public int getSumOfCubic(int num) { 				// 用于计算参数num的立方和
		num = num * num * num;
		return num;
	}
}

 

实例21  求任意一个正数的阶乘

public class ForCycle_03 {
	public static void main(String[] args) {
		System.out.println("请输入一个正整数:");
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		int layer = num;
		int j = 1;
		loop: while (true) { 			// break标号
			layer = layer * (num - j); 	// 算阶层的具体实现
			j++; // j不断自加
			if (j == num)
				break loop; 		// 如果j>I,就结束内偱环
		}
		System.out.println(num + "的阶层为:" + layer);
	}
}

 

实例22  求n的n次方

package Chapter03;

import java.util.Scanner;

public class ForCycle_04 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入底数:");
		int num = sc.nextInt();	// num表示的是底数
		System.out.println("请输入幂数:");
		int power = sc.nextInt();	// 表示是幂
		int result = 1;			// 表示最后的结果
		for (int i = 0; i < power; i++) {
			result = result * num;
		}
		System.out.println(num + "的" + power + "次方是   " + result);
	}
}

 

实例23  利用for循环输出几何图形

public class ForCycle_05 {
	public static void showEquilateral(int row) { 		// 输出等腰三角形图形
		for (int i = 1; i < row; i++) {	 				// 外层循环控制输出的行数
			for (int j = 1; j <= row - i; j++) { 			// j表示输出的空格数,其空格数=总行数-1
				System.out.print(" ");
			}
			for (int x = 1; x <= i * 2 - 1; x++) {		// x表示输出的字符"*",其个数=当前行数*2-1
				System.out.print("*");
			}
			System.out.println(); 				// 每输出一行就换行一次
		}
	}
	public static void showRhombus(int row) { 		// 输出菱形图形
		if (row >= 1) { // 判断传入的行数
			int x, y;
			for (x = 1; x <= row; x++) { 			// 先输出上半部分的正三角形
				for (y = 1; y <= row - x; y++)		// 控制左边输出的空格数
					System.out.print(" ");
				for (y = 1; y <= 2 * x - 1; y++)		// 控制输出的"#"数
					System.out.print("#");
				System.out.println(); 			// 每输出一行就换行一次
			}
			for (x = 1; x <= row; x++) { 			// 输出下半部分的正三角形
				for (y = 1; y <= x; y++)			// 控制左边输出的空格数,与上半部分正好相反
					System.out.print(" ");
				for (y = 1; y <= 2 * (row - x) - 1; y++)	// 控制输出的"#"数
					System.out.print("#");
				System.out.println(); // 每输出一行就换行一次
			}
		} else {
			System.out.println("您输入的行数错误,请重新输入!!!");
		}
	}
	public static void showLettersTriangle(int row) {		// 输出由小写字母排列的直角三角形
		for (int i = 1; i <= row; i++) { 				// 外层循环row次,输出row行
			for (int x = 1; x < i; x++)				// 字母由小到大排列输出
				System.out.print((char) (x + 96));	// x + 96是将数字转换成小写字母
			for (int y = i; y != 0; y--)				// 字母由大到小排列输出
				System.out.print((char) (y + 96));
			System.out.println(); 				// 每输出一行就换行一次
		}
	}
	public static void main(String[] args) { 
		System.out.println("(1) 输出等腰三角形图案");
		showEquilateral(7); 						// 输出行数为7的等腰三角形图案
		System.out.println("(2) 输出菱形图案");
		showRhombus(5); 						// 输出行数为5的菱形图案
		System.out.println("(3) 输出字母排列的直角三角形图案");
		showLettersTriangle(5); 					// 输出行数为5的字母排列的直角三角形图案
	}
}

 

实例24  杨辉三角

public class ForCycle_08 {
	public static void yh_Triangle(int array[][], int rows) { // 其作用是输出杨辉三角
		for (int i = 0; i <= rows; i++) { // 行循环
			for (int j = 0; j <= array[i].length - 1; j++) { 	// 列循环
				if (i == 0 || j == 0 || j == array[i].length - 1)
					array[i][j] = 1; 				// 将两边元素设为1
				else
											// 元素值为其正上方元素与左上角元素之和
					array[i][j] = array[i - 1][j - 1] + array[i - 1][j]; 
			}
		}
		for (int i = 0; i <= rows; i++) { 				// 行循环
			for (int j = 0; j <= array[i].length - 1; j++)	// 列循环
				
				System.out.print(array[i][j] + " "); 	// 输出数组元素
			System.out.println(); 				// 换行
		}
	}
	public static void main(String args[]) { 
		final int rows = 7; 						// 设置行数
		int array[][] = new int[rows + 1][]; 			// 声明二维数组,行数为8
		for (int i = 0; i <= rows; i++) { 				// 循环初始化数组
			array[i] = new int[i + 1];
		}
		System.out.println("杨辉三角如下:");
		yh_Triangle(array, rows); 					// 调用方法显示杨辉三角
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值