首页 > Java > java教程 > 正文

java流程控制

巴扎黑
发布: 2017-06-23 16:26:11
原创
941 人浏览过

判断某一年是否为闰年

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 + "只老鹰。");
   }
}

结果:

 

以上是java流程控制的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板