java流程控制

判断某一年是否为闰年

package com;

import java.util.Scanner;

public class Msj {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.println("请输入一个年份:"); //向控制台输出一个提示信息

long year;

try {

year = scan.nextLong();

if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { // 是闰年

System.out.print(year + "是闰年!");

} else { // 不是闰年

System.out.print(year + "不是闰年!");

}

} catch (Exception e) {

System.out.println("您输入的不是有效的年份!");

}

}

}

结果:

验证登录信息的合法性

package com;

import java.util.Scanner;

public class Msj {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);// 创建扫描器
System.out.println("请输入登录用户名:");
String username = scan.nextLine();// 接收用户输入登录名
System.out.println("请输入登录密码:");
String password = scan.nextLine();// 接收用户输入登录密码
if (!username.equals("mr")) {// 判断用户名合法性
System.out.println("用户名非法。");
} else if (!password.equals("mrsoft")) {// 判断密码合法性
System.out.println("登录密码错误。");
} else {// 通过以上两个条件判断则默认通过登录验证
System.out.println("恭喜您,登录信息通过验证。");
}
}
}

结果

为新员工分配部门

package com;

import java.util.Scanner;

public class Msj {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入新员工的姓名:");
String name = scan.nextLine();// 接收员工名称
System.out.println("请输入新员工应聘的编程语言:");
String language = scan.nextLine();// 接收员工应聘的编程语言
// 根据编程语言确定员工分配的部门
switch (language.hashCode()) {
case 3254818:// java的哈希码
case 2301506:// Java的哈希码
case 2269730:// JAVA的哈希码
System.out.println("员工"+name+"被分配到Java程序开发部门。");
break;
case 3104:// c#的哈希码
case 2112:// C#的哈希码
System.out.println("员工"+name+"被分配到C#项目维护组。");
break;
case -709190099: // asp.net的哈希码
case 955463181: // Asp.net的哈希码
case 9745901: // ASP.NET的哈希码
System.out.println("员工"+name+"被分配到Asp.net程序测试部门。");
break;
default:
System.out.println("本公司不需要" + language + "语言的程序开发人员。");
}
}
}

用switch语句根据消费金额计算折扣 

package com;

import java.util.Scanner;

public class Msj {
public static void main(String[] args) {
float money = 1170; // 金额
String rebate = ""; // 折扣
if (money > 200) {
int grade = (int) money / 200; // 等级
switch (grade) { // 根据等级计算折扣比例
case 1:
rebate = "九五折";
break;
case 2:
rebate = "九折";
break;
case 3:
rebate = "八五折";
break;
case 4:
rebate = "八三折";
break;
case 5:
rebate = "八折";
break;
case 6:
rebate = "七八折";
break;
case 7:
rebate = "七五折";
break;
case 8:
rebate = "七三折";
break;
case 9:
rebate = "七折";
break;
case 10:
rebate = "六五折";
break;
default:
rebate = "六折";
}
}
System.out.println("您的累计消费金额为:" + money);// 输出消费金额
System.out.println("您将享受" + rebate + "优惠!"); // 输出折扣比例
}
}

结果:

判断用户输入月份的季节

package com;

import java.util.Scanner;

public class Msj {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in); // 创建扫描器
// 提示用户输入月份
System.out.println("请输入一个月份,我能告诉你它属于哪个季节。");
int month = scan.nextInt(); // 接收用户输入
switch (month) { // 判断月份属于哪个季节
case 12:
case 1:
case 2:
System.out.print("您输入的月份属于冬季。");
break;
case 3:
case 4:
case 5:
System.out.print("您输入的月份属于春季");
break;
case 6:
case 7:
case 8:
System.out.print("您输入的月份属于夏季");
break;
case 9:
case 10:
case 11:
System.out.print("您输入的月份属于秋季");
break;
default:
System.out.print("你那有" + month + "月份吗?");
}
}
}

结果

使用while循环语句与自增运算符循环遍历数组 

package com;

import java.util.Scanner;

public class Msj {
public static void main(String[] args) {
// 创建鸟类数组
String[] aves = new String[] { "白鹭", "黄鹂", "鹦鹉", "乌鸦", "喜鹊",
"布谷鸟", "斑鸠", "百灵鸟" };
int index = 0;// 创建索引变量
System.out.println("我的花园里有很多鸟,大约包括:");
while (index < aves.length) {// 遍历数组
System.out.println(aves[index++]);// 自增索引值
}
}
}

结果:

使用for循环输出杨辉三角形

package com;

import java.util.Scanner;

public class Msj {
public static void main(String[] args) {
int triangle[][]=new int[10][];// 创建二维数组
// 遍历二维数组的第一层
for (int i = 0; i < triangle.length; i++) {
triangle[i]=new int[i+1];// 初始化第二层数组的大小
// 遍历第二层数组
for(int j=0;j<=i;j++){
// 将两侧的数组元素赋值为1
if(i==0||j==0||j==i){
triangle[i][j]=1;
}else{// 其他数值通过公式计算
triangle[i][j]=triangle[i-1][j]+triangle[i-1][j-1];
}
System.out.print(triangle[i][j]+"\t"); // 输出数组元素
}
System.out.println(); //换行
}
}
}

结果:

使用嵌套循环在控制台上输出九九乘法表 

package com;

import java.util.Scanner;

public class Msj {
public static void main(String[] args) {
for(int i=1;i<=9;i++){// 循环控制变量从1遍历到9
for(int j=1;j<=i;j++){// 第二层循环控制变量与第一层最大索引相等
// 输出计算结果但不换行
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();// 在外层循环中换行
}
}
}

结果:

使用while循环计算1+1/2!+1/3!…1/20!

package com;

import java.math.BigDecimal;
import java.util.Scanner;

public class Msj {
public static void main(String[] args) {
BigDecimal sum = new BigDecimal(0.0); // 和
BigDecimal factorial = new BigDecimal(1.0); // 阶乘项的计算结果
int i = 1; // 循环增量
while (i <= 20) {
sum = sum.add(factorial); // 累加各项阶乘的和
++i; // i加1
factorial = factorial.multiply(new BigDecimal(1.0 / i)); // 计算阶乘项
}
System.out.println("1+1/2!+1/3!···1/20!的计算结果等于:\n" + sum); // 输出计算结果
}
}

结果:

使用for循环输出空心的菱形 

package com;

import java.math.BigDecimal;
import java.util.Scanner;

public class Msj {
public static void main(String[] args) {
printHollowRhombus(6);
}
public static void printHollowRhombus(int size) {
if (size % 2 == 0) {
size++;// 计算菱形大小
}
for (int i = 0; i < size / 2 + 1; i++) {
for (int j = size / 2 + 1; j > i + 1; j--) {
System.out.print(" ");// 输出左上角位置的空白
}
for (int j = 0; j < 2 * i + 1; j++) {
if (j == 0 || j == 2 * i) {
System.out.print("* ");// 输出菱形上半部边缘
} else {
System.out.print(" ");// 输出菱形上半部空心
}
}
System.out.println(""); //换行
}
for (int i = size / 2 + 1; i < size; i++) {
for (int j = 0; j < i - size / 2; j++) {
System.out.print(" ");// 输出菱形左下角空白
}
for (int j = 0; j < 2 * size - 1 - 2 * i; j++) {
if (j == 0 || j == 2 * (size - i - 1)) {
System.out.print("* ");// 输出菱形下半部边缘
} else {
System.out.print(" ");// 输出菱形下半部空心
}
}
System.out.println(""); //换行
}
}
}

结果:

终止循环体

package com;

import java.math.BigDecimal;
import java.util.Scanner;

public class Msj {
public static void main(String[] args) {
System.out.println("\n-------------中断单层循环的例子-------------");
// 创建数组
String[] array = new String[] { "白鹭", "丹顶鹤", "黄鹂", "鹦鹉", "乌鸦", "喜鹊",
"老鹰", "布谷鸟", "老鹰", "灰纹鸟", "老鹰", "百灵鸟" };
System.out.println("在你发现第一只老鹰之前,告诉我都有什么鸟。");
for (String string : array) { // foreach遍历数组
if (string.equals("老鹰")) // 如果遇到老鹰
break;// 中断循环
System.out.print("有:" + string+" "); // 否则输出数组元素
}

System.out.println("\n\n-------------中断双层循环的例子-------------");
// 创建成绩数组
int[][] myScores = new int[][] { { 67, 78, 63, 22, 66 }, { 55, 68, 78, 95, 44 }, { 95, 97, 92, 93, 81 } };
System.out.println("宝宝这次考试成绩:\n数学\t语文\t英语\t美术\t历史");
No1: for (int[] is : myScores) { // 遍历成绩表格
for (int i : is) {
System.out.print(i + "\t"); // 输出成绩
if (i < 60) { // 如果中途遇到不及格的,立刻中断所有输出
System.out.println("\n等," + i + "分的是什么?这个为什么不及格?");
break No1;
}
}
System.out.println();
}
}
}

结果:

循环体的过滤器 :

package com;

import java.math.BigDecimal;
import java.util.Scanner;

public class Msj {
public static void main(String[] args) {
// 创建数组
String[] array = new String[] { "白鹭", "丹顶鹤", "黄鹂", "鹦鹉", "乌鸦", "喜鹊",
"老鹰", "布谷鸟", "老鹰", "灰纹鸟", "老鹰", "百灵鸟" };
System.out.println("在我的花园里有很多鸟类,但是最近来了几只老鹰,请帮我把它们抓走。");
int eagleCount = 0;
for (String string : array) {// foreach遍历数组
if (string.equals("老鹰")) {// 如果遇到老鹰
System.out.println("发现一只老鹰,已经抓到笼子里。");
eagleCount++;
continue;// 中断循环
}
System.out.println("搜索鸟类,发现了:" + string);// 否则输出数组元素
}
System.out.println("一共捉到了:" + eagleCount + "只老鹰。");
}
}

结果: