java程序结构_java程序的三种结构
从结构化程序设计角度出发,程序有三种结构:
顺序结构:
JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。顺序结构在程序流程图中的体现就是用流程线将程序框自上而地连接起来,按顺序执行算法步骤。
选择结构:
if(条件表达式){
语句;
}
意义:if语句对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳过该语句
条件表达式必须是布尔表达式
示例:
1 import java.util.Scanner;2 public classTestIf{3 public static voidmain(String[] args){4 /*
5 0~18:你还是小屁孩!6 18~30:你是精力旺盛小青年!7 30~50:你是处在人生顶峰的老男人!8 大于50:你已经人老珠黄了!9 */
10 Scanner sc = new Scanner(System.in);11 System.out.println("请输入你的年龄:");12 int age =sc.nextInt();13 if(age>0 && age<=18){14 System.out.println("你还是小屁孩");15 }16 if(age>18 && age<=30){17 System.out.println("你是精力旺盛小青年");18 }19 if(age>30 && age<=50){20 System.out.println("你是出于人生巅峰的老男人");21 }22 if(age>50){23 System.out.println("你已经日落西山了");24 }25 }26 }
View Code
if-else双选择结构:如果条件为true执行一个操作,为false执行另一个操作:
流程图:
示例:
1 public classIfElse{2 public static voidmain(String[] args){3 double r = Math.random()*6;4 double s = Math.PI*r*r;5 double c = 2*Math.PI*r;6 System.out.println("半径为:" +r);7 System.out.println("面积为:" +s);8 System.out.println("周长为:" +c);9 if(s>=c){10 System.out.println("圆的面积大于周长");11 }else{12 System.out.println("圆的周长大于面积");13 }14 }15 }
View Code
If-elseif-else多选择结构:
if(布尔表达式1) {
语句块1;
} else if(布尔表达式2) {
语句块2;
}………
else if(布尔表达式n){
语句块n;
} else {
语句块n+1;
}
逐条对if语句进行判断,条件匹配,进入语句体不再进行判断,否则对if语句继续判断匹配
1 public classTestIfElse3{2 public static voidmain(String[] args){3 int age = (int)(Math.random()*100);4 System.out.println("您的年龄是:" + age + ",属于:");5 if(age<15){6 System.out.println("儿童");7 }else if(age<35){8 System.out.println("青年");9 }else if(age<50){10 System.out.println("壮年");11 }else if(age<85){12 System.out.println("老年");13 }else{14 System.out.println("老寿星");15 }16 }17 }
View Code
switch多选择结构
根据表达式值的不同执行许多不同的操作
Switch语句:case标签必须是整数或者枚举,不能是字符串。
switch (表达式) {
case 值1:
语句序列;
[break];
case 值2:
语句序列;
[break];
… … … … …
[default:
默认语句;]
}
switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾
与任一case值不匹配,则进入default语句(如果有的话)
1 importjava.util.Scanner;2 public classSwitchTest1{3 public static voidmain(String[] args){4 intnumber;5 System.out.println("请拨号:");6 Scanner sc = newScanner(System.in);7 number =sc.nextInt();8 switch(number){9
10 case 1:11 System.out.println("打给爸爸。。。");12 break;13 case 2:14 System.out.println("打给妈妈。。。");15 break;16 case 3:17 System.out.println("打给爷爷。。。");18 break;19 case 4:20 System.out.println("打给奶奶。。。");21 break;22 default:23 System.out.println("对不起,没有你要输入的亲情号");24 }25 }26 }
View Code
根据输入的月份,打出该月份的天数(不需要考虑润年、闰月)
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 classWhileTest {public static voidmain(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循环可能一次都不执行
示例:
1 public static voidmain(String[] args) {2 int i=0;3 int sum = 0;4 do{5 sum +=i;6 i++;7 }while(i<=100);8 System.out.println(sum);9 }
For循环
For循环语句是支持迭代的一种通用结构,是最有效最灵活的循环结构
语法形式:
for(循环变量初始化; 布尔表达式;循环变量改变语句)
n for循环在第一次反复之前要对循环变量进行初始化。随后,它会进行条件测试,而且在每一次反复的时候,循环变量进行某种形式的“改变”。
初始化部分设置循环变量的初值
条件判断部分为任意布尔表达式
迭代因子控制循环变量的增减
public static voidmain(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 classBreakTest {public static voidmain(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 classContinueTest {public static voidmain(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 classHomeWork1{//九九乘法表
public static voidmain(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程序的三种结构相关推荐
- java线程方法_Java线程的三种方式
创建线程有三种方式: 1.继承Thread类 2.实现Runnable接口 3.使用Callable和Future创建线程 三种方式详解如下: ---------------------------- ...
- java 取整数_java中的三种取整函数
1.Math.floor floor,英文原意:地板. Math.floor 函数是求一个浮点数的地板,就是 向下 求一个最接近它的整数,它的值肯定会小于或等于这个浮点数. Math.floor(-1 ...
- 分之结构 if-else 三种结构
/* 分支结构中的 if-else(条件判断结构) 一,三种结构 第一种: if(条件表达式){ 执行表达式 } 第二种:二选一 if(条件表达式){ 执行表达式1 }else{ 执行表达式2 } 第 ...
- java 启动类_java程序启动,类的加载情况
一.java程序运行的时候,不是所有类必须被加载到jvm虚拟机中才可以正常使用 是不是所有的class文件都在启动的时候全部加载呢? java中的类大致分为三种: 1.系统类 2.扩展类 3.由程序 ...
- 详解微信小程序页面间传递信息的三种方式
详解微信小程序页面间传递信息的三种方式 在开发微信小程序的时候,经常会遇到在页面间传递信息的情况,有三种方法可以实现. 1. 使用数据缓存 将要存储的数据使用以下方法放入缓存 wx.setStorag ...
- (Dijkstra算法)设计实现一个全国大城市间的交通咨询程序,为旅客提供三种最优决策方案:(1)飞行时间最短(2)费用最小(3)中转次数最少。
设计实现一个全国大城市间的交通咨询程序,为旅客提供三种最优决策方案: (1)飞行时间最短 (2)费用最小 (3)中转次数最少 数据如下: 机 号 出 发 地 到 达 地 出发时间 到达时间 费 用 ...
- 读取Java文件到byte数组的三种方式及Java文件操作大全(包括文件加密,String加密)
读取Java文件到byte数组的三种方式 package zs;import java.io.BufferedInputStream; import java.io.ByteArrayOutputSt ...
- Java中OutOfMemoryError(内存溢出)的三种情况及解决办法
Java中OutOfMemoryError(内存溢出)的三种情况及解决办法 相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各 ...
- 结构成员访问的三种方法
结构成员访问的三种方法 #include "stdio.h" #include "string.h" #include <stdlib.h> mai ...
- Java 数组转成集合List三种方法和(数组、集合List、Set相互转换)
Java 数组转成集合List 三种方法 package com.list;import java.util.ArrayList; import java.util.Arrays; import ja ...
最新文章
- 解决高并发的问题python_python ---解决高并发超卖问题
- 清除word中超链接
- documentFragment深入理解
- 蚂蚁“备战”TPC-C这1年
- 数据库缓冲池_块缓冲| 数据库管理系统
- 深入理解Java泛型
- 【Ian Goodfellow 强推】GAN 进展跟踪 10 大论文(附下载)
- Qt5学习笔记之计时器
- ArcScene:构建三维地图
- 码织匠C语言程序设计,“C语言程序设计”课程的教学资源融合建设研究
- 用latex画化学结构式
- Dezender下载及使用说明
- setCookie时遇到的问题
- 如何将三维模型移动到真实位置
- 字母缩写对应的世界各国家及其官方语言java工具类
- 利用一个竞态漏洞root三星s8的方法
- 简历准备(一)—— TPLink
- Android保存图片和视频到相册
- 微软Windows8“消失”了的宣传壁纸
- 开车遇暴雨请戴墨镜!快转起,很多人会感激你的!
热门文章
- 2021年8月国产数据库排行榜:TiDB稳榜首,达梦返前三,Kingbase进十强,各厂商加速布局云生态...
- 案例:强制开库遭遇ORA-16433的处理过程
- 数据库每日一题 2020.05.09
- 如何用 Redis 做实时订阅推送的?
- 基于昇腾CANN的卡通图像生成可在线体验啦!十分钟带你了解CANN应用开发全流程
- 一文总结GaussDB通信原理知识
- 实践案例丨利用小熊派开发板获取土壤湿度传感器的ADC值
- python编译反编译,你不知道的心机与陷阱
- 窥探日志的秘密【华为云分享】
- linux查进程内存问题,关于linux下内存问题排查的工具