最近在学习中,做了一个java的几个案例,主要是九九乘法口诀,实心菱形和空心菱形的算法,模拟彩票程序以及BMI的测试标准等小案例。

一:九九乘法表

/**
* 九九乘法口诀
*/
public static void main(String[] args) {
int sum = 0; // sum是乘法的结果
for (int i = 1; i <= 9; i++) {
for (int n = 1; n <= i; n++) {
sum = i * n;
System.out.print(n+"*"+i+"="+sum+"\t");
}
System.out.println("\n");
} }

二:空心菱形和实心菱形

/**
* 输出的实心菱形和空心菱形的算法
*/
public static void main(String[] args) {
int hangshu = 11;
int yiban = hangshu / 2 + 1;
int yibanduo = hangshu / 2;
System.out.println("空心菱形:");
for(int k = 1;k <= yiban;k++){
for(int i = 1;i <= (yiban - k);i++){
System.out.print(" ");
}
System.out.print("*");
for(int i = 1;i <= ( (k - 2) * 2 + 1);i++){
System.out.print(" ");
}
if(k != 1){
System.out.print("*");
}
System.out.println();
}
for(int k = yibanduo;k >=1;k--){
for(int i = 1;i <= (yiban - k);i++){
System.out.print(" ");
}
System.out.print("*");
for(int i = 1;i <= ( (k - 2) * 2 + 1);i++){
System.out.print(" ");
}
if(k != 1){
System.out.print("*");
}
System.out.println();
} System.out.println("实心菱形:");
for(int i = 1;i <= hangshu;i++){
if(i <= hangshu/2 + 1){
for(int k = 1;k <= hangshu/2 + 1- i;k++){
System.out.print(" ");
}
for(int k = 1;k <= i;k++){
System.out.print("* ");
}
System.out.println();
}else{
for(int k =1;k <= (i -(hangshu/2 + 1));k++){
System.out.print(" ");
}
for(int k = 1;k <= (2 *(hangshu/2 + 1) - i);k++){
System.out.print("* ");
}
System.out.println();
}
}
}

三 :BMI的测试标准

import java.io.*;
public class WeightTest {
/*
测试你的体重的标准
BMI的测试标准
标准体重:22* 身高的平方(米)
体重指数:体重公斤/身高的平方
正常体重:体重指数18-25
超重 :体重指数25-30
轻度肥胖:体重指数>30
中度肥胖:体重指数>35
重度肥胖: 体重指数>40
*/
/* testWeight 封装了BMI测试的方法 */
public void testWeight() throws IOException{
/* 获得输入的体重,身高 */
InputStreamReader ist = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(ist);//创建字符流对x象
System.out.println("请输入体重(单位公斤)");
String w = br.readLine();//读取体重
System.out.println("请输入身高(单位为米)");
String h = br.readLine();//读取身高
/* 把从键盘输入的身高转换成double类型*/
double weight = Double.parseDouble(w);
double high = Double.parseDouble(h);
/*计算对应的标准体重和体重指数*/
double nomalWeight = 22 * high * high;//计算对应的标准体重
double BMI = weight/(high*high);//体重指数
System.out.println("你身高对应的标准体重是"+nomalWeight+"\n");
System.out.println("你的体重指数"+BMI+"\n");
/* 你的体重标准*/
if(BMI>=18&&BMI<=25.0)
System.out.println("你的体重很标准,继续保持!"+"\n");
else if(BMI>25&&BMI<=30)
System.out.println("你的体重有点超重,请注意哦!"+"\n");
else if (BMI>30&&BMI<=35)
System.out.println("你的体重有点轻度肥胖,应该注意锻炼身体哦!"+"\n");
else if (BMI>35&&BMI<=40)
System.out.println("你的体重有点中度肥胖,要经常锻炼身体哦!"+"\n");
else if (BMI>40)
System.out.println("你的体重有点重度肥胖,应该加强锻炼身体哦!"+"\n");
else
System.out.println("没有可靠的数据,请确认数据是否正确!"+"\n");
}
/* testContinue 判断是否继续执行程序*/
public boolean testContinue() throws IOException{
InputStreamReader ist = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(ist);//创建字符流对x象
String result = null; //用来获取result来的对象
boolean bool = false;
while(true){
System.out.println("是否继续测试你的体重指数(yes/no)");
result = br.readLine();
if(result.equalsIgnoreCase("yes"))
{
bool = true;
break;
}
else if(result.equalsIgnoreCase("no"))
{
bool = false;
break ;
}
else{
System.out.println("输入的数据只能是yes/no,请重新输入!");
continue;
}
}
return bool ;
} public static void main(String[] args) throws IOException
{
boolean boole = false;//创建boolean对象,判断是否执行语句!
WeightTest wt = new WeightTest();//创建WeightTest对象
//执行测试体重
do{
wt.testWeight();
boole = wt.testContinue();
}while(boole);
System.out.println("谢谢你的使用,祝福你天天有一个好心情!");
}
}

在这个程序中可以多次循环来测试多人的体重指数,但是在循环语句编写时有点繁琐,其实可以使用递归的算法来解决。在这里就不在编写了。来通过下面的那个例子来看一下递归的使用

四 :模拟彩票程序

import java.util.Scanner;

public class LotterTickerTest {

	/**
* 这个程序主要实现了的是模拟随机彩票的程序。它可以选择从35位整数中选择六位
* 数字为一组数字。首先在先从键盘输入1-5的数字,确定产生的随机数字。从35位
* 数中产生6为数字,存放在数组中。数组可以存放相同类型的数据。
*/
public static void main(String[] args) {
int number = 0;
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字1-5");
String s = input.next();
number = Integer.parseInt(s);//把输入的数字转换成int类型的
if(number<=5){
int m = 0 ;//初始化彩票输入的次数
int a[] = new int[6];//创建一个一个长度为6的数组
for(int i = 0;i<number;i++){
m= m+1 ;//第一次随机的产生的彩票数字
/*
* n 代表的是 数组的下标
*/
for(int n= 0;n<6;n++){
a[n]= (int)(Math.random()*35+1);//进行随机产生35以内的数字,存在数组中
//如果产生的数字相同,则i-1,重新选择数据
for(int j = 0 ;j<n;j++){
if(a[n]==a[j]){
n--;
continue;
}
}
}
//在第一次产生的彩票号码之前打出号码
if(m==1)
System.out.println("35选6的号码是:");
else
System.out.println("");
//循环遍历彩票的号码
for(int k = 0 ;k<6;k++){
System.out.print(a[k]+"\t");
}
}
}else{
System.out.println("输入的数字超出范围,请重新输入!");
} } }

下面的这个程序主要有递归的使用,主要用于输入时的数字超出范围。在下面的会重点标出。

import java.util.Scanner;

public class LotterTickerTest {

	/**
* 这个程序主要实现了的是模拟随机彩票的程序。它可以选择从35位整数中选择六位
* 数字为一组数字。首先在先从键盘输入1-5的数字,确定产生的随机数字。从35位
* 数中产生6为数字,存放在数组中。数组可以存放相同类型的数据。
*/
public void randomTest(){
int number = 0;
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字1-5");
String s = input.next();
number = Integer.parseInt(s);//把输入的数字转换成int类型的
if(number<=5){
int m = 0 ;//初始化彩票输入的次数
int a[] = new int[6];//创建一个一个长度为6的数组
for(int i = 0;i<number;i++){
m= m+1 ;//第一次随机的产生的彩票数字
/*
* n 代表的是 数组的下标
*/
for(int n= 0;n<6;n++){
a[n]= (int)(Math.random()*35+1);//进行随机产生35以内的数字,存在数组中
//如果产生的数字相同,则i-1,重新选择数据
for(int j = 0 ;j<n;j++){
if(a[n]==a[j]){
n--;
continue;
}
}
}
//在第一次产生的彩票号码之前打出号码
if(m==1)
System.out.println("35选6的号码是:");
else
System.out.println("");
//循环遍历彩票的号码
for(int k = 0 ;k<6;k++){
System.out.print(a[k]+"\t");
}
}
}else{
System.out.println("输入的数字超出范围,请重新输入!");
randomTest();
} }
public static void main(String[] args) {
LotterTickerTest lt = new LotterTickerTest();
lt.randomTest();
} }

java的关于流程结构做的几个案例的更多相关文章

  1. Java基础—控制流程语句(条件语句与循环结构)

    与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流程.Java的控制流程结构与C和C++的控制流程机构一样,只有很少的例外情况.没有goto语句,但break语句可以带标签,可以利用它实 ...

  2. Java核心技术卷阅读随笔--第3章【Java 的基本程序设计结构】

    Java 的基本程序设计结构 现在, 假定已经成功地安装了 JDK,并且能够运行第 2 章中给出的示例程序.我们从现在开始将介绍 Java 应用程序设计.本章主要介绍程序设计的基本概念(如数据类型.分 ...

  3. Java基础-程序流程控制第二弹(循环结构)

    Java基础-程序流程控制第二弹(循环结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 流程控制有三种基本结构:顺序结构,选择结构和循环结构.一个脚本就是顺序结构执行的,选择结 ...

  4. Java基础-程序流程控制第一弹(分支结构/选择结构)

    Java基础-程序流程控制第一弹(分支结构/选择结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.if语句 1>.if语句的第一种格式 if(条件表达式){ 语句体: ...

  5. 【JAVA零基础入门系列】Day8 Java的控制流程

    什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等.举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下 ...

  6. 201771010142 张燕 Java的基本程序设计结构第二周学习总结

    第三章 Java的基本程序设计结构 第一部分 理论知识学习部分 一 基本知识: 1.标识符:由字母.下划线,美元符号和数字组成,第一个符号不能为数字,可以用作类名.变量名.方法名.数组名和文件名等. ...

  7. 第一章 Java代码执行流程

    说明:本文主要参考自<分布式Java应用:基础与实践> 1.Java代码执行流程 第一步:*.java-->*.class(编译期) 第二步:从*.class文件将其中的内容加载到内 ...

  8. Java编程基础——流程控制

    Java编程基础——流程控制 摘要:本文主要介绍Java编程中的流程控制语句. 分类 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下三种: 顺序结构:从上到下依次执行每条语句操作 ...

  9. Eclipse JAVA项目的 目录结构 和 导入

    说明:本文所有测试以java工程为例: 1. Eclipse下的java工程目录 eclipse的基本工程目录叫做workspace,每个运行时的eclipse实例只能对应一个workspace,也就 ...

随机推荐

  1. 浅谈Spring的AOP实现-代理机制

    说起Spring的AOP(Aspect-Oriented Programming)面向切面编程大家都很熟悉(Spring不是这次博文的重点),但是我先提出几个问题,看看同学们是否了解,如果了解的话可以 ...

  2. Linux文件的所有权与权限

    要了解Linux的权限,需要和Linux的用户与组的概念一并理解,不了解的同学请参考Linux的用户和组 简介 在Linux中,每个文件除了有用户和组的信息以外,还有其对应的权限.可使用来查看. [r ...

  3. UE4新手编程之创建空白关卡和添加碰撞体

    让我们接着上次继续学习UE4引擎,今天我们学习下怎样创建空白的关卡以及添加碰撞物体. 一. 创建空白关卡 1) 点击文件 -> 新建关卡(或者按快捷键Ctrl+N). 2) 你可以选择Defau ...

  4. [lisp] scheme环境搭建与编译运行

    搭建环境参考这篇 http://leochin.com/mac-scheme-install/ 用文本编辑器写代码 保存文件格式为 .scm 在终端中cd到scm文件所在文件夹, 执行  (cf &q ...

  5. 5969 [AK]刻录光盘

    题目描述 Description • 在FJOI2010夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家,以便大家回去后继续学习.组委会觉得这个主意不错!可是组委会一时 ...

  6. BZOJ2160: 拉拉队排练

    Description 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训 ...

  7. Linux与Windows远程互访(使用Rdesktop与SSH)

    工作的时候经常使用Redhat系列系统,而平常娱乐文档都是在windows平台上进行.因此实现linux与windows远程互访也是很有必要的事情. 本文将介绍如何实现Linux与Windows的远程 ...

  8. .net 中的async,await理解

    理解: 1.async修饰的方法可理解为异步方法(必须要配合await,否则和普通方法无异)2.当async方法执行遇到await,则立即将控制权转移到async方法的调用者3.由调用者决定是否需要等 ...

  9. 【BZOJ-1493】项链工厂 Splay

    1493: [NOI2007]项链工厂 Time Limit: 30 Sec  Memory Limit: 64 MBSubmit: 1440  Solved: 626[Submit][Status] ...

  10. Codeforces Round #397 by Kaspersky Lab and Barcelona Bootcamp (Div. 1 + Div. 2 combined) B. Code obfuscation 水题

    B. Code obfuscation 题目连接: http://codeforces.com/contest/765/problem/B Description Kostya likes Codef ...