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)