从结构化程序设计角度出发,程序有三种结构:  

  顺序结构:

  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循环在第一次反复之前要对循环变量进行初始化。随后,它会进行条件测试,而且在每一次反复的时候,循环变量进行某种形式的“改变”。

  1. 初始化部分设置循环变量的初值
  2. 条件判断部分为任意布尔表达式
  3. 迭代因子控制循环变量的增减
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程序的三种结构的更多相关文章

  1. Java程序员的现代RPC指南(Windows版预编译好的Protoc支持C++,Java,Python三种最常用的语言,Thrift则支持几乎主流的各种语言)

    Java程序员的现代RPC指南 1.前言 1.1 RPC框架简介 最早接触RPC还是初学Java时,直接用Socket API传东西好麻烦.于是发现了JDK直接支持的RMI,然后就用得不亦乐乎,各种大 ...

  2. OID,主键生成策略,PO VO DTO,get和load区别,脏检查,快照,java对象的三种状态

    主键生成策略 sequence 数据库端 native 数据库端 uuid  程序端 自动赋值 生成的是一个32位的16进制数  实体类需把ID改成String 类型 assigned  程序端 需手 ...

  3. Tomcat部署发布JSP应用程序的三种方法 (转)

    Tomcat部署发布JSP应用程序的三种方法     1.直接放到Webapps目录下      Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应 ...

  4. 斐波那契数列-java编程:三种方法实现斐波那契数列

    题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行 斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 这个数列 ...

  5. 【Java 线程的深入研究1】Java 提供了三种创建线程的方法

    Java 提供了三种创建线程的方法: 通过实现 Runnable 接口: 通过继承 Thread 类本身: 通过 Callable 和 Future 创建线程. 1.通过实现 Runnable 接口来 ...

  6. JavaSE(一)Java程序的三个基本规则-组织形式,编译运行,命名规则

    一.Java程序的组织形式       Java程序是一种纯粹的面向对象的程序设计语言,因此Java程序必须以类(class)的形式存在,类(class)是Java程序的最小程序单位.       J ...

  7. python程序的三种控制结构

    程序的三种控制结构 什么是控制结构? """ 程序有三种基本结构组成:顺序结构.分支结构.循环结构.任何程序都是由这三种基本结构组成. 顺序结构是程序按照线性顺序依次执行 ...

  8. Eclipse远程调试Java代码的三种方法

    Eclipse远程调试Java代码的三种方法, 第1种方法是用来调试已经启动的Java程序,Eclipse可以随时连接到远程Java程序进行调试, 第2种方法可以调试Java程序启动过程,但是Ecli ...

  9. Hibernate 系列 07 - Hibernate中Java对象的三种状态

    引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hi ...

随机推荐

  1. mysql命令行使用

    连接数据库   mysql -P 端口号 -h 远程机地址/ip -u 用户名 -p mysql -uroot -p123456 修改数据库密码 mysqladmin -uroot -p123456 ...

  2. K2路由器刷机教程

    http://blog.sina.com.cn/s/blog_dc642faa0102x1on.html 方法:先降价——刷入breed——刷入固件 1.K2路由固件版本为V22.4.5.39 / V ...

  3. sh - 脚本学习 启动/停止/重启/部署jetty crontab

    ===============jettytest.sh ====================== #!/bin/shjettysh_path=/usr/local/jetty/bin/jetty. ...

  4. ios-密码判断

    我们经常在项目时有涉及到用户或是手机号登录,这时一般会配合密码才能登录成功. 下面发一些关于手机和密码形式的判断: - (void)registButtonClick:(id)sender { )// ...

  5. zombodb 得分以及高光

    得分以及高光在搜索引擎中有很重要的作用 得分zdb.score 使用方法 zdb.score(tid) 参考示例 SELECT zdb.score(ctid), * FROM products WHE ...

  6. java 偏向锁、轻量级锁及重量级锁synchronized原理

    Java对象头与Monitor java对象头是实现synchronized的锁对象的基础,synchronized使用的锁对象是存储在Java对象头里的. 对象头包含两部分:Mark Word 和 ...

  7. Spring IOC(四)总结升华篇

    本系列目录 Spring IOC(一)概览 Spring IOC(二)容器初始化 Spring IOC(三)依赖注入 Spring IOC(四)总结升华 =============正文分割线===== ...

  8. Parallel Programming for FPGAs 学习笔记(1)

    Parallel Programming for FPGAs 学习笔记(1)

  9. SqlDbx 个人版本使用指定的instant client

    set Oracle_Home=D:\Toolkit\Oracle kits\instantclient_x86 set TNS_ADMIN=%Oracle_Home% set NLS_LANG=SI ...

  10. linux上静态库和动态库的编译和使用(附外部符号错误浅谈)

    主要参考博客gcc创建和使用静态库和动态库 对于熟悉windows的同学,linux上的静态库.a相当于win的.lib,动态库.so相当于win的.dll. 首先简要地解释下这两种函数库的区别,参考 ...