java学习之语句结构
在java语言当中存在4中语句结构,分别是:
1、顺序结构
2、判断结构
3、选择结构
4、循环结构
一、顺序结构:
所谓的顺序结构,也就是当不指定其他三种语句结构的情况下,语句是从上往下依次执行的,只有碰到其他三种语句结构的时候,才会做相应判断、选择、循环。顺序结构是基础,是默认的执行顺序。
在顺序结构当中有一种比较特殊的形式就是:
int a = 9;
{ int x = 10; System.out.println("Hello World!"); } System.out.println("x == "+x);//这个时候打印x是打印不出来的
这种语句结构在java语言当中叫做局部代码块。局部代码块的特点就是在其中声明的变量,在其所属的大括号结束之后,就会被内存释放。当我们需要一个变量仅在我们用完之后立即释放的时候,我们可以选择用这种结构表达式。一般用于节约内存的使用,国外的大多数程序开发者都比较注重这一点。
二、判断结构:
判断结构当中是以if为基础的,if有三种具体形式:
1、单if结构,表达方式:
if(条件表达式,必须返回true 或者 是false){
需要执行的语句
}
if之后的大括号,是表示该if语句控制的语句范围。当if之后有且仅有一条语句时,这个时候大括号是可以省略的。
比如:
int a = 10; if(a>1)
System.out.println("A 大于 1"); //当if后紧跟着一条语句时这个时候 大括号"{ }"是可以省略掉的。
这里的单if语句的意思就是说,当满足判断条件的时候,if控制体内的语句将被执行,否则被程序忽略不执行。一种判断,一种结果。
2、if....else....表达方式:
if(条件表达式,同样必须返回true或者是false)
{
需要执行的语句1;
}else{
需要执行的语句2;
}
这种if表现形式的语句是说,当判断条件满足的时候,执行语句1,当条件不满足的时候将执行语句2;此时表现的是一个判断,一个结果。但是无论怎样,都有且只有一条语句会被执行。
3、if...else if... ... else ...表达方式:
if(判断表达式1){
语句1;
}else if(判断表达式2){
语句二;
}else if(判断表达式3){
语句三;
}else if(判断表示式4){ .... }else{
语句其他;
}
这种if的表现形式是说,当判断表达式1对的时候,执行语句1,当判断表达式2对的时候,执行语句2....当都不满足时执行最后一个else内的语句其他;即:多种判断,一种结果。
三、选择结构:
在java选择结构中只有一个switch选择结构,他的作用主要用于:当一个变量有多种值的时候,提供给我们一个选择执行的语句,进行操作。代码示例:int a;
class SwichDemo {
public static void main(String[] args) {
int a = 1;
switch(a){
case 1:
System.out.println("A's value is :" + a);
break;
case 2:
System.out.println("A's value is :" + a);
break;
default:
System.out.println("No match value");
}
}
}
这里需要注意的一点就是break语句,break语句的作用是当条件满足的时候,执行完相对应的语句之后,退出switch语句。假如此时不用break退出的话,那么程序会在执行完对应的语句之后继续把其他的语句打印一遍,直到遇到break跳出switch语句。让我们修改一下 上述的例子看下 :
class SwichDemo { public static void main(String[] args) { int a = 1;
switch(a){ case 1:
System.out.println("A's value is :" + a);
//break; case 2:
System.out.println("A's value is :" + 2);
//break; case 3:
System.out.println("A's value is :" + 3);
break; default:
System.out.println("No match value"); } } }
那么此时程序将会输出:,直到遇到break语句之后才会退出swtich,否则一直向下执行,直至遇到“}”switch大括号,控制范围表示符为止。
这里需要注意的一点是 case 语句之后只能跟int,short,byte,char类型的常量,在java后续更新版本当中,有的支持String.
小结之if 和 switch的区别:
1、结构的书写格式不一样。
2、当处理单一变量,多种选择的时候,这两者是都可以的,都能够完满的完成任务。但是,swicth此时会比较清晰的呈现,待判断的变量,还有带选择的选项之间的关系,但是也有一个弱点就是,书写起来要非常谨慎,因为switch书写起来要比if复杂并且容易出错。
3、switch要比if有局限性。用switch能完成的if都可以完成,用if能完成的switch不一定可以。
(待续)
四、循环结构:
循环结构,是为了方便我们重复处理大量语句而存在的。
循环语句有三种:while循环、do...while循环、for循环:
while循环:while循环的特点是,先判断条件真假,如果为假,那么不执行循环体当中的语句;如果为真,就执行循环体内的语句。while循环可以执行,也可以一次不执行。
代码示例:
int a = 10;
while(a>8)//概括号内必须返回boolen值
{
System.out.println("a is "+a);
a--;//一般情况下需要做条件判断的调整,让循环停止下来。否则即为死循环。
}
do...while循环:
do...while循环的特点是,先执行一次,然后判断条件是否满足,如果满足,继续执行,如果不满足则退出循环。但是无论如何,循环体内的语句,至少执行一次。
代码示例:
int a = 10;
do{ System.out.println("Do while 循环");
}while(a>11);
小结:那么什么时候使用while循环,什么时候使用do...while循环呢?(暂时没有搞明白....待续)。
for循环语句:
for(初始条件表达式;验证条件表达式;循环次数控制表达式){}//循环体
代码示例:
for(int i = 0 ; i<=10; i++){
System.out.println("Hello World!");
}
这里需要注意的是for循环的具体执行顺序:
①首先初始化变量i,(注意这里初始化完i之后就不再用它了)
②然后判断(i<=10)的真假,如果为真则
③System.out.println("Hello World!");
④执行完这个语句之后然后执行 i++;
⑤之后又开始计算 i<=10 的真假,如果为真
⑥System.out.println("Hello World!");
⑦然后执行i++;
⑧当再循环后 i<=10 为假之后,退出循环体
总体的步骤也就是:初始化条件表达式,这个只初始化一次。之后的工作就集中在判断条件是否满足,如果满足就执行循环体,变量增加;只有当条件不满足的时候,退出循环体。
for循环还有一个特点就是,内部初始化的变量属于局部作用域,局部作用域的意思是当退出循环体的时候,释放该变量所占的内存空间。在另一方面也就节省了内存的开销。
五、循环结构的应用场景:
1、累加思想:
现在有一个需求就是计算1....100这个数的和;
代码:
int i = 1;
int sum;
while(i<=100){
sum += i;
i++;
}
累加器的思想:(待续)
2、计数器思想:
现在有一个需求就是,打印出1...100中6的倍数,以及倍数的个数:
代码:
int i = 1;
int count;
while(i<=100)
{
if(i%6 == 0){
System.out.println(i);
count++;
}
}
System.out.println("1到100当中共有6的倍数"+count+"个");
3、无限循环:
while无限循环:while(true);
for 无限循环:for(;;);(需要说明的一点就是,for 初始化表达式默认就是真);
(未完待续....)
FOR循环练习:(大圈套小圈的思想:当程序重复做一件事,然而这件重复要做的事内又存在需要重复做的事时,即这个时候就是大圈套小圈的思想。)
For 联系一、
需求:在控制台以"*"为单位打印如下字符:
******
******
******
******
思路:
1、首先要打印4个行,用for循环实现如下:
for(int i = 0; i<4;i++){
//这里用于打印四个行
}
2、在一个行内又得重复打印6个"*",用for循环实现代码如下:
for(int x = 0; x<6;x++){ //这里用于打印6个"*"; }
3、综合起来讲的话,也就是每打印一个行,都要在这个行内重复打印"*"6次,综合起来就是:
for(int i = 0; i<4;i++){
for(int x = 0; x < 6; x ++){
System.out.print("*"); }
}
4、在每行打印完之后,需要在行尾添加一个换行符:
for(int i = 0; i < 4; i++){
for(int x = 0; x < 6; x++){
System.out.print("*"); }
System.out.println();
}
完成。
For 联系二:
需求:
在控制台以"*"为单位打印如下字符图形:
*******
******
*****
****
***
**
*
思路:
1、这个打印总共有七行,所以肯定要有一个:
for(int i = 0 ; i<7 ; i++)
{
}
2、打印七行之后,我们再来看下每行的特点。这里每行的特点就是,每行输出的*是由7个逐个往下递减,也就是第一个输出是7个,第二个6个,第三个5个,逐个类推.....此时我们可以定义一个变量b来控制*号出现的次数。
int b = 7;
for(int x = 0; x<b; x++){
System.out.print("*");
}
b--;
3、因为这个需要循环执行,所以需要有一个循环体包裹着才可以。那我们把第二步的循环体,放到第一步当中,看一下执行结果:
for(int i = 0 ; i<7 ; i++)
{
int b = 7;
for(int x = 0; x<b; x++){
System.out.print("*"); }
b--;
}
结果如下:,很不幸啊,结果是错误的!!!到底是什么地方错了呢?让我们仔细阅读下程序代码:
首先初始化变量,i=0; 之后比较i是否小于7,如果条件为真,那么执行循环体内的内容:
现在让我们来修正下程序:代码如下:
class ForDemo{ public static void main(String[] args) { int b = 7; for(int i = 0; i<7 ; i++){ for(int x = 0; x< b; x++){ System.out.print("*"); } System.out.println();
b--; } } }
当然这里还有一种写法,代码:
class ForDemo{ public static void main(String[] args) { for(int i = 7; i>0 ; i--){ //int b = 7; for(int x = 0; x< i; x++){ System.out.print("*"); } System.out.println();
//b--; } } }
温馨提示:在你写任何代码,将要运行的时候,花10秒时间去认真读一下,代码的执行顺序,看看他是否真的像你预想的那样执行的。实在不确定再去运行他.....
java学习之语句结构的更多相关文章
- Java学习之分支结构---判断语句:if语句和switch语句
一个if语句包含一个布尔表达式和一条或多条语句,if 语句的用语法如下:if 语句 if(布尔表达式) { //如果布尔表达式为true将执行的语句 },如果布尔表达式的值为 true,则执行 if ...
- java学习:循环结构的使用规则和注意事项
循环结构的基本组成部分,一般可分为四部分: 初始化语句:在循环开始最初执行,而且只做唯一一次 条件判断:如果成立,则循环继续:如果不成立,则循环退出. 循环体:重复要做的事情内容,若干行语句. 进步语 ...
- Java学习--循环语句1
1. break public class BreakDemo{ // 完成一个四则运算的功能 public static void main(String args[]){ for(int i=0; ...
- Java学习--循环语句
1. break public class BreakDemo{ // 完成一个四则运算的功能 public static void main(String args[]){ for(int i=0; ...
- Java学习之Mysql结构优化
背景:业务发展初期为了便于快速迭代,很多应用都采用集中式的架构,随着业务规模的扩展,系统变得越来越复杂,访问量越来越大,不得不进一步扩展系统的吞吐能力. 优化1.主从集群:通过数据库的复制策略,可以将 ...
- Java 学习笔记(2)——基本语句、控制结构
上一篇中简单谈了一下自己对Java的一些看法并起了一个头,现在继续总结java的相关语法.java语法总体上与C/C++一样,所以对于一个C/C++程序员来说,天生就能看懂Java代码.在学习java ...
- Java使用条件语句和循环结构确定控制流
与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流.本文将简单讲解条件.循环和switch. 一.块作用域 块(block),即复合语句.是指由一对大括号括起来的若干条简单的Java语句 ...
- 201771010142 张燕 Java的基本程序设计结构第二周学习总结
第三章 Java的基本程序设计结构 第一部分 理论知识学习部分 一 基本知识: 1.标识符:由字母.下划线,美元符号和数字组成,第一个符号不能为数字,可以用作类名.变量名.方法名.数组名和文件名等. ...
- Java学习笔记八:Java的流程控制语句之循环语句
Java的流程控制语句之循环语句 一:Java循环语句之while: 生活中,有些时候为了完成任务,需要重复的进行某些动作.如参加 10000 米长跑,需要绕 400 米的赛道反复的跑 25 圈.在 ...
随机推荐
- 亲测PHpnow 安装环境
出现问题1: "C:\Windows\system32\7z.exe"' 不是 或批处理文件. 找不到 C:\Windows\system32\7z.exe------------ ...
- xcode升级或者重新安装后不能编译的解决方法
昨天由于xcode有一些问题,因此进行了重新安装,结果安装好后进行编译,没有进行任何改动的代码出现了两个fatal error 查看错误信息为什么的header has allready build, ...
- ssh连接超时问题解决方案
方法一: 1.设置服务器向SSH客户端连接会话发送频率和时间 #vi /etc/ssh/sshd_config,添加如下两行ClientAliveInterval 60ClientAliveCount ...
- 利用jpedal进行pdf转换成jpeg,jpg,png,tiff,tif等格式的图片
项目中运用到pdf文件转换成image图片,开始时使用pdfbox开源库进行图片转换,但是转换出来的文件中含有部分乱码的情况.下面是pdfBox 的pdf转换图片的代码示例. try{ String ...
- Oracle数据库管理员经常使用的表和视图
◆dba_开头 dba_users 数据库用户信息 dba_segments 表段信息 dba_extents 数据区信息 dba_objects 数据库对象信息 dba_tablespaces 数据 ...
- Echarts使用随笔(2)-Echarts中mapType and data
本文出处:http://blog.csdn.net/chenxiaodan_danny/article/details/39081071 series : [ { ...
- xcode7 icon图标设置
- CSRF 攻击的应对之道
转载自imb文库 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在 ...
- iOS 中如何监测某段代码运行的时间
在iOS里面有时间涉及到网络请求,有时间涉及到数据库的查询,我们需要计算该段代码的效率, 以及执行时间方面的问题,为此,可以使用下面方法: double a = CFAbsoluteTimeGetCu ...
- Adapter 模式
在实际软件系统设计和开发中,会经常遇到这种问题:我们为了完成某项工作购买了一个第三方的库来加快开发. 这就带来了一个问题: 我们在应用程序中已经设计好了接口,与这个第三方提供的接口不一致,为了使得这些 ...