java程序的三种结构
从结构化程序设计角度出发,程序有三种结构:
顺序结构:
JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。顺序结构在程序流程图中的体现就是用流程线将程序框自上而地连接起来,按顺序执行算法步骤。
选择结构:
if(条件表达式){
语句;
}
意义:if语句对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳过该语句
条件表达式必须是布尔表达式
示例:
import java.util.Scanner;
public class TestIf{
public static void main(String[] args){
/*
0~18:你还是小屁孩!
18~30:你是精力旺盛小青年!
30~50:你是处在人生顶峰的老男人!
大于50:你已经人老珠黄了!
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
if(age> && age<=){
System.out.println("你还是小屁孩");
}
if(age> && age<=){
System.out.println("你是精力旺盛小青年");
}
if(age> && age<=){
System.out.println("你是出于人生巅峰的老男人");
}
if(age>){
System.out.println("你已经日落西山了");
}
}
}

if-else双选择结构:如果条件为true执行一个操作,为false执行另一个操作:
流程图: 
示例:
public class IfElse{
public static void main(String[] args){
double r = Math.random()*;
double s = Math.PI*r*r;
double c = *Math.PI*r;
System.out.println("半径为:" + r);
System.out.println("面积为:" + s);
System.out.println("周长为:" + c);
if(s>=c){
System.out.println("圆的面积大于周长");
}else {
System.out.println("圆的周长大于面积");
}
}
}

If-elseif-else多选择结构:
if(布尔表达式1) {
语句块1;
} else if(布尔表达式2) {
语句块2;
}………
else if(布尔表达式n){
语句块n;
} else {
语句块n+1;
}
逐条对if语句进行判断,条件匹配,进入语句体不再进行判断,否则对if语句继续判断匹配

public class TestIfElse3{
public static void main(String[] args){
int age = (int)(Math.random()*100);
System.out.println("您的年龄是:" + age + ",属于:");
if(age<15){
System.out.println("儿童");
}else if(age<35){
System.out.println("青年");
}else if(age<50){
System.out.println("壮年");
}else if(age<85){
System.out.println("老年");
}else {
System.out.println("老寿星");
}
}
}

switch多选择结构
根据表达式值的不同执行许多不同的操作
Switch语句:case标签必须是整数或者枚举,不能是字符串。
switch (表达式) {
case 值1:
语句序列;
[break];
case 值2:
语句序列;
[break];
… … … … …
[default:
默认语句;]
}
switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾
与任一case值不匹配,则进入default语句(如果有的话)

import java.util.Scanner;
public class SwitchTest1{
public static void main(String[] args){
int number;
System.out.println("请拨号:");
Scanner sc = new Scanner(System.in);
number = sc.nextInt();
switch(number){ case 1:
System.out.println("打给爸爸。。。");
break;
case 2:
System.out.println("打给妈妈。。。");
break;
case 3:
System.out.println("打给爷爷。。。");
break;
case 4:
System.out.println("打给奶奶。。。");
break;
default:
System.out.println("对不起,没有你要输入的亲情号");
}
}
}

根据输入的月份,打出该月份的天数(不需要考虑润年、闰月)
int month =(int)(1+Math.random()*12);
if(month>0&&month<13){
switch (month) {
case 2:
System.out.println("28天");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("30天");
break;
default:
System.out.println("31天");
} // 31:1,3,5,7,8,10,12 30:4,6,9,11 28:2 }else{
System.out.println ("月份不合法!");
}

循环结构:
while语句格式
while (布尔表达式) {
循环体;
}
在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前重新计算一次。
语句中应有使循环趋向于结束的语句,否则会出现无限循环–––"死"循环。

public class WhileTest {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i <= 100) { // 1+2+3+…+100=?
sum += i; //sum = sum+i;
i++;
}
System.out.println("Sum= " + sum);
}
}

while语句结构
do{
循环体;
}while(布尔表达式);
先执行循环体,后判断boolean表达式,循环体至少执行一次,而while循环可能一次都不执行
示例:
public static void main(String[] args) {
int i=0;
int sum = 0;
do{
sum +=i;
i++;
}while(i<=100);
System.out.println(sum);
}

For循环
For循环语句是支持迭代的一种通用结构,是最有效最灵活的循环结构
语法形式:
for(循环变量初始化; 布尔表达式;循环变量改变语句)

n for循环在第一次反复之前要对循环变量进行初始化。随后,它会进行条件测试,而且在每一次反复的时候,循环变量进行某种形式的“改变”。
- 初始化部分设置循环变量的初值
- 条件判断部分为任意布尔表达式
- 迭代因子控制循环变量的增减
public static void main(String[] args){
int sum = 0;
for (int i = 0; i <= 100; i++) {
sum += i;
}
System.out.println("Sum= " + sum);
}

如何使用循环结构呢?
当不知道执行次数循环次数的时候使用while循环,当至少执行一次的时候使用do...while循环,当有明确循环次数哦的时候使用for循环
一般而言,能用while循环的都可以用for循环解决,而且for循环看着更加整洁大方
break语句和continue语句
在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句
public class BreakTest {
public static void main(String[] args) {
int total = 0;
System.out.println("Begin");
while(true) {
total++;
int i = (int)Math.round(100 * Math.random());
if(i == 88) break;
}
System.out.println("Game over, used " + total + " times.");
}
}

当条件满足时,退出当前循环。不再执行以后的循环
continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
把100~150之间不能被3整除的数输出:
public class ContinueTest {
public static void main(String[] args) {
int count = 0;
for (int i = 100; i < 150; i++) {
if (i % 3 == 0){
continue;
}
System.out.println(i);
}
}
}
无限循环的第二种形式是for(;;)。编译器将while(true)与for(;;)看作同一回事。
用循环求九九乘法表:
public class HomeWork1{
//九九乘法表
public static void main(String[] args){
for(int i=1;i<10;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
}
}

java程序的三种结构的更多相关文章
- Java程序员的现代RPC指南(Windows版预编译好的Protoc支持C++,Java,Python三种最常用的语言,Thrift则支持几乎主流的各种语言)
Java程序员的现代RPC指南 1.前言 1.1 RPC框架简介 最早接触RPC还是初学Java时,直接用Socket API传东西好麻烦.于是发现了JDK直接支持的RMI,然后就用得不亦乐乎,各种大 ...
- OID,主键生成策略,PO VO DTO,get和load区别,脏检查,快照,java对象的三种状态
主键生成策略 sequence 数据库端 native 数据库端 uuid 程序端 自动赋值 生成的是一个32位的16进制数 实体类需把ID改成String 类型 assigned 程序端 需手 ...
- Tomcat部署发布JSP应用程序的三种方法 (转)
Tomcat部署发布JSP应用程序的三种方法 1.直接放到Webapps目录下 Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应 ...
- 斐波那契数列-java编程:三种方法实现斐波那契数列
题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行 斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 这个数列 ...
- 【Java 线程的深入研究1】Java 提供了三种创建线程的方法
Java 提供了三种创建线程的方法: 通过实现 Runnable 接口: 通过继承 Thread 类本身: 通过 Callable 和 Future 创建线程. 1.通过实现 Runnable 接口来 ...
- JavaSE(一)Java程序的三个基本规则-组织形式,编译运行,命名规则
一.Java程序的组织形式 Java程序是一种纯粹的面向对象的程序设计语言,因此Java程序必须以类(class)的形式存在,类(class)是Java程序的最小程序单位. J ...
- python程序的三种控制结构
程序的三种控制结构 什么是控制结构? """ 程序有三种基本结构组成:顺序结构.分支结构.循环结构.任何程序都是由这三种基本结构组成. 顺序结构是程序按照线性顺序依次执行 ...
- Eclipse远程调试Java代码的三种方法
Eclipse远程调试Java代码的三种方法, 第1种方法是用来调试已经启动的Java程序,Eclipse可以随时连接到远程Java程序进行调试, 第2种方法可以调试Java程序启动过程,但是Ecli ...
- Hibernate 系列 07 - Hibernate中Java对象的三种状态
引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hi ...
随机推荐
- Python导入jar包
一.环境准备 1.Python 3.6 64位+jre 64位+win64位(jre和Python位数一致) 2.安装jpype,安装的时候输入 pip install jpype1 2.1安装提示e ...
- 渲染标签 - v-html
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title ...
- 原来bug解决了,是这样的感觉
终于过了,感觉好想哭啊,又莫名其妙的爽,原来这就是bug
- 使用maven profile指定配置文件打包适用多环境
新建maven项目, 在pom.xml中添加 profile节点信息如下: <profiles> <profile> <!-- 开发环境 --> <id& ...
- Nmap使用指南
一.目标指定 1.CIDR标志位 192.168.1.0/24 2.指定范围 192.168.1.1-255 192.168.1-255.1(任意位置) 3.IPv6地址只能用规范的IPv6地址或主机 ...
- MySQL Execution Plan--NOT IN查询
在某系统中想使用NOT IN子查询进行数据过滤,SQL为: SELECT * FROM TB001 AS T1 DAY) AND T1.BATCH_NO NOT IN(SELECT BATCH_NO ...
- hbase hbck命令
hbase hbck 只做检查 hbase hbck -fixMeta 根据region目录中的.regioninfo,生成meta表` hbase hbck -fixAssignments 把met ...
- 一次完整的HTTP事务是怎样一个过程?(转)
HTTP协议 关于HTTP协议可以参考以下: HTTP协议漫谈 http://kb.cnblogs.com/page/140611/ HTTP协议概览 http://www.cnblogs.com/v ...
- 第三章 FFmpeg转封装
3.1 音视频文件转MP4格式 在互联网常见的格式中,跨平台最好的应该是MP4文件. 3.1.1 MP4格式标准介绍 MP4文件由多个Box与FullBox组成 每个Box由Header和Data两部 ...
- Java虚拟机------JVM介绍
Java平台和语言最开始只是SUN公司在1990年12月开始研究的一个内部项目: Java的平台无关性 Java平台和语言最开始只是SUN公司在1990年12月开始研究的一个内部项目[stealth ...