java三种结构_java基本结构

java基本结构

java基本结构

顺序结构

一句一句往下执行,顺序结构是最简单的语法结构。

1 ?

2 public class Hello{

3 public static void main(String []args)

4 {

5 System.out.println("Hello1");

6 System.out.println("Hello2");

7 System.out.println("Hello3");

8 System.out.println("Hello4");

9 System.out.println("Hello5");

10 System.out.println("Hello6");

11 }

12 }

选择结构

常见选择结构if()

语法:

if( boolean类型数据)

{

boolean类型条件成立时执行,不成立时跳过。

}

if() else型

语法:

if(条件)

{ 成立时执行。}

else

{ 不成立时执行。 }

eg:

1 package Struct;

2 ?

3 import java.util.Scanner;

4 ?

5 public class Deom01 {

6 public static void main(String[] args)

7 {

8 Scanner scanner=new Scanner(System.in);

9 System.out.println("请输入一个整型数据");

10 int x=1;

11 if(scanner.hasNextInt())

12 {

13 x= scanner.nextInt();

14 System.out.println("得到的整型数据为:"+x);

15 }

16 else

17 System.out.println("输入的数据不是整型的哦");

18 scanner.close();

19 }

20 }

21 ?

?

esle if型

语法:

if(条件1) {1成立时执行}

else if(条件二) {2成立时执行}

else if(条件三) {3成立时执行}

else

{ 以上都不符合时执行。}

注:

else if可以无限嵌套,但是其中只有一条会被执行,执行语句后跟的else if()和else 都被跳过,不再判断执行。

eg:

1 package Struct;

2 ?

3 import java.util.Scanner;

4 //判断成绩分级

5 public class Deom02 {

6 public static void main(String[] args) {

7 int score=-1;

8 System.out.println("输入分数:");

9 Scanner scanner=new Scanner(System.in);

10 if(scanner.hasNextInt())

11 score= scanner.nextInt();

12 if(score=60score=69)

13 System.out.println("及格");

14 else if(score=70score80)

15 System.out.println("良好");

16 else if(score=80score90)

17 System.out.println("优秀");

18 else if(score=90score=100)

19 System.out.println("非常优秀啊");

20 else if(score0score60)

21 System.out.println("不及格啊");

22 else

23 System.out.println("输入的成绩不合法");

24 ?

25 }

26 }

?

switch(){case}结构

语法:

switch(比较值)

{

case 选值1:

成立时的操作;

break;

case 选值2:

成立时的操作;

break;

......

default:

以上都不成立时的操作;

}

注:字符串String的比较在java SE 7及以上才可以使用,case穿透现象是指当

case成立后其后和本身都没有break时,其后所有的选项都会被执行。

eg:

1 package Struct;

2 ?

3 import java.util.Scanner;

4 ?

5 public class Demo03 {

6 public static void main(String[] args) {

7 Scanner s=new Scanner(System.in);

8 System.out.println("输入成绩等级!");

9 String x = s.next();

10 switch(x){

11 case "A":

12 System.out.println("成绩为A");

13 break;

14 case "B":

15 System.out.println("成绩为B");

16 break;

17 case "C":

18 System.out.println("成绩为C");

19 break;

20 default:

21 System.out.println("输入有误!");

22 }

23 ?

24 }

25 }

?

反编译

简单讲解利用IDEA进行反编译,

首先,打开File---project struct---复制文件夹路径

打开我的电脑输入路径进入文件夹,找到.class文件,将该文件复制进我们当前的包路径,在IDEA中打开该文件,即可看到反编译的代码。

循环结构

1、while(){}循环

语法:

while(布尔语句)

{ 循环内容;}

当布尔语句为true时循环执行,当布尔语句为false时循环停止。先判断后执行,错误一次都不执行当一直为true时为死循环,程序一直执行,少数情况下例如等待服务器响应等会用到,一般应避免死循环。一般需要一个表达式失效的条件结束循环。

eg:

?

1 package Struct;

2 ?

3 public class Demo04while { //计算1+2+3+4···+100的值

4 public static void main(String[] args) {

5 int x=0;

6 int sum=0;

7 while(x100)

8 {

9 x++;

10 sum+=x;

11 }

12 System.out.println(sum);

13 }

14 }

?

?

2、 do{ }while(); 循环

语法:

do{ 循环内容; }while(布尔语句);

与while的区别主要是,不管布尔语句正确与否都会先执行一次,后再根据布尔语句确定是否继续循环。

3、for(){} 循环

语法:

for(初始化; 布尔语句; 迭代)

{ 循环内容 }

IDEA快捷键,100.for 可以快速写出for循环100次。

执行顺序为:先执行初始化,然后是布尔判断,true时执行循环,false时跳过循环,执行循环后,进行迭代,迭代后继续判断布尔语句的正确与否,然后继续循环或结束循环。

初始化可以为空(在for外面写 ),布尔语句以为空是死循环,迭代也可以写在循环体内部

eg:

?

1 ?

2 package Struct;

3 ?

4 public class Demofor05 {

5 public static void main(String[] args) {//输出一百以内能被5整除的数,每行输出三个

6 for(int i=1;i=100;i++)

7 {

8 if(i%5==0)

9 {

10 System.out.print(i+"\t");

11 if(i%(5*3)==0) //出现能被3*5整除的说明已经输出3次了,换行!

12 System.out.println();

13 }

14 }

15 }

16 ?

17 }

?

循环的嵌套使用,外层循环一遍,内层循环一圈!

for( )

{

for( ) { }

}

常见案例:打印9 9乘法表!

?

package Struct;

?

public class Demo06For {

public static void main(String args[])

{

for (int i = 1; i =9; i++) { //外层循环

for (int i1 = 1; i1 =i; i1++) { //内层循环

System.out.print(i1+"*"+i+"="+i*i1+"\t");

}

System.out.println();

}

}

}

?

?

for(){}增强!

java5以后新增的共能,

语法:

for(声明语句 : 表达式 ) //声明语句是定义的变量,表达式是数组或者返回值为数组的方法。

{

循环内容;

}

eg:

1 int []numbers={1,2,3,4,5};

2

3 for( int x : numbers)

4

5 {

6

7 System.out.print(x);

8

9 }

结果:

循环五次,每次的输出结果为numbers数组里的值1,2 ,3,4,5

break和continue

break;跳出当前循环,即该循环停止不再执行。

continue;跳出本次循环,开始下次循环。

标签操作,给外层循环一个标签,在内层循环continue或者break标签可以直接跳出这个外层循环

eg

?

1 outer: for(int i=1;i5;i++)

2 {

3 for(int x=1;x5;x++)

4 {

5 if(x==2)

6 {

7 continue outer;//可以直接结束外层的本次循环,开始下一次循环

8 }

9 }

10 }

11

java基本结构 相关文章

【设计模式 - 结构型模式】3. 组合模式

一、定义与特点 组合(Composite Pattern)模式的定义:有时又叫作整体-部分模式, 是用于把一组相似的对象当作一个单一的对象。 组合模式是用于 整体与部分的结构 ,当整体与部分有相似的结构,在操作时可以被一致对待时,就可以使用组合模式。例如: 文件

【设计模式 - 结构型模式】2. 桥接模式

一、定义 考虑这样一个需求:绘制矩形、圆形、三角形这三种图案。按照面向对象的理念,我们至少需要个具体类,对应三种不同的图形。 // 抽象形状类IShapeclass IShape {public: void draw();};// 三个具体形状类:矩形、圆形、三角形class Rectangle: public

Java获取MongoDB自动生成的主键字段_id的值

MongoDB每条文档会有一个叫 _id的字段,这个相当于我们原来关系数据库中表的主键,当你在插入文档记录时没有指定该字段,MongoDB会自动创建,其类型是ObjectID或String类型。 在Java对象类中,使用@Id注解可以将属性对应到MongoDB数据库中自动生成的主键字段

Java SPI

SPI全称为(Service Provider Interface), 是JDK内置的一种服务提供发现机制. SPI是一种动态替换发现的机制. 比如有个接口, 想运行时动态的给它添加实现, 你只需要添加一个实现. 比如经常遇到java.sql.Driver接口, 不同厂商针对同一接口做出不同的实现提供给

MyBatis缓存

MyBatis是常见的Java数据库访问层框架. 在日常工作中, 开发人员多数情况下是使用MyBatis的默认缓存配置, 但是MyBatis缓存机制有一些不足之处, 在使用中容易引起脏数据, 形成一些潜在的隐患. 个人在业务开发中也处理过一些由于MyBatis缓存引发的开发问题, 带

算法(二)

//-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) $array = [1,3,6,9,13,1,63,65,69,70,71,73,75,76,77,79,89]; $target = 73;//查找的数 $low = 0; $high = count($array)-1;//中间数 function bin_se

zookeeper 实现分布式锁 demo(新)

目录结构: !-- 引入zookeeper -- dependency groupIdorg.apache.zookeeper/groupId artifactIdzookeeper/artifactId version3.6.1/version /dependency 起4台zookeeper : controller : package com..controller;import com..config.ZKUtils;import com..wa

Vue-方法与事件

基本用法 监听点击事件 v-on缩写:@预期:Function | Inline Statement | Object参数:event修饰符:.stop - 调用 event.stopPropagation()。.prevent - 调用 event.preventDefault()。.capture - 添加事件侦听器时使用 capture 模式。.self - 只当事件是从

【JavaScript】数组分组

数组分组 最终期望实现 编写一个 chunk 函数,将数组拆分成多个 size 长度的块,并组成一个新数组。 如果数组无法被分割成全部等长的块,那么最后剩余的元素将组成一个块。 参数 array (Array) 需要被处理的数组 [size=0] (number) 每个块的长度 返回值(Arr

C++STL中的常用的数据结构

STL中常用的数据结构: [1] stack、queue默认的底层实现为deque结构。 [2] deque:用map管理多个size大小的连续内存块,方便头尾插入。 [3] vector:变长动态数组,每次增大1.5倍,删除元素时不释放空间。 [4] priority_queue底层默认采用vector向量O(nlogn)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值