TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
1. while9 r1 P% p6 q7 y
While 循环控制
0 N% E( E( L4 T9 T4 ]. E" I* e' _0 ~' G) M# K
Scanner console = new Scanner(System.in);
% O- ^2 L" W9 ` while(布尔表达式){; |4 S+ Y" P8 G' o, }8 a' F" J
qty = console.nextInt();+ z" ]* K6 w+ c( y6 P
if(qty>0 && qty<=5){ //五个以内
$ q i- W5 b" H0 L* {( n% j break; //打断, 打断当前循环
* B( {9 \5 \2 P' o0 u6 V }5 M2 `5 x1 |5 n$ U2 X: f4 e
} a0 Y9 ]1 T5 P5 \7 q6 Q! O2 b
7 A! i9 w( ~ b2. for 循环(主要用于几次的循环)8 O! A, ?8 r0 ~% R& ]
循环控制* I" [3 u* m' }( A4 t6 ~; E
for(初始化表达式;布尔表达式; 递增表达式){& O+ q) A& l1 P& P
//循环体: \; M& s' t S" x$ _; K0 a0 D t
} O$ y& Q" Q) @9 b$ I
for(;;){
* f e& k( `5 u* ~. \2 k: t$ u } R/ X- m0 ?$ J g0 P0 M
for(int a=1, b=3;;){9 K/ S- W) b' ~% k) `
}
( q0 _% N" s/ X# ]/ H& s2 W
+ R; F) M9 Z5 M. E- @# l; O% Z! L3 A
Example: d' h, V( H* J$ l
for (int i = 0; i < array.length; i++){
) f% w- d- e: c m7 ?+ Z) D9 ~- G System.out.println(i);
2 ^/ h% a. X0 m' \: f+ k" n }3 j, y+ Q0 R* o) O9 r9 J, _
. J9 I; u I2 G
3. do ... while8 W d* z1 W" U: |
do ... while() 循环控制
, b) l3 ]# d8 y8 U, t& K do{1 @% g& l f7 j5 J( x5 E' h
//循环体+ ^3 E0 k1 e( ^ m
}while(布尔表达式);6 H% m( \4 \2 y
Example:7 X0 b+ f! V v* }
do{* c* @) q+ J/ s' r8 }" g4 U
System.out.print("输入押注数量:");$ L7 C% R$ q/ L& J& U- K8 q
bet = console.nextInt();
) i) i, f: W9 F& N9 e9 p1 y L i }while(bet <= 0 || bet > balance); //否定条件7 Y; ]: C, {( V) Y, {
+ M6 y& s% ?& W- _, s7 R
4. java Array
2 Z! A- \# c( S8 S 1) 数组变量的声明% @) N( `" G* F& i3 Z
int[] ary; 声明了数组变量 ary, 数组变量是代词,1 t; ^: P! x6 p4 l. Z- p3 l2 M
int ary[]; 为了与C语法兼容的写法, 不建议写法,6 @, `8 z: j) {
; ?) ? v. @2 K4 s
2) 数组对象动态初始化
: o! f, ?0 d% p8 f( u ary = new int[4]; //数组变量引用了具体数组对象, 就是代词; l) @/ d# v/ V+ h
指代了具体事务.* ?9 n8 J& y. L+ m
数组元素是自动初始化的, 自动初始化为"零"值.
' }1 y K! Z4 v+ U' Z- X) Z2 j "零"值: 0, 0.0, \u0000, false, null& l7 d( u4 l3 N' U
ary = new int[]{1,2,3}; 直接给出元素的初始化
8 J" {5 m! p9 t( \2 V. E5 P. @ 3) 数组对象的静态初始化, 只能用在声明数组变量时候同时初始化
+ r. R' z& G6 ~5 A4 i6 @4 |) {/ n+ A9 e * 不能用于赋值语句9 T( t! m1 f6 S% ~
int[] ary = {1,2,3};
9 B' O4 |0 T5 \ ary = {3,4,5,6};//编译错误
4 B/ ^! T" @+ J8 U6 R* y# E, H, \' y3 D. M, `5 o4 a
Java关键字: if, public, class, else, while
( t, ?6 o8 ~% \$ N 特殊关键字: goto, const
) r; Z' j1 H) E! _ java中 true, false, null 不是关键字, 是字面量!! X1 u1 @; E- @8 o
& M4 v% g( ]) w, h( x 4) 数组变量, 数组对象, 数组元素
, J8 B, P) `' l: ]$ N( w% G& z: y 如: int[] ary = {1,2,3};
5 P! J! O( T+ h# j ary 是 数组变量 指代一个具体的数组, 同一个变量指代不同的数组
2 v( U5 g2 p/ `1 k* y9 b# e p {1,2,3} 数组对象
[4 R. } }) F4 g. w 1,2,3 是数组元素
) ^$ K5 q8 f+ t" I# [( x; f
u$ m" h! L2 {* x5 p {7 {. d 5) 数组元素的访问, 数组对象的大小是固定的,长度是n,下标: 0~n-1 ' ^- T6 u* I" R+ A8 a9 C% x9 g7 R
A 使用[下标] 访问数组元素
3 z9 K i: O) f: O* B+ M% x B 越界访问(小于0/大于等于n), 都会发生运行异常
# ~. o. g y, X- V& e3 O C 使用.length 属性可以获取数组对象长度
. G5 I% q7 H" @* ]# r) Z% d# G- Q
5 数组的复制与动态扩展算法
' Z: o0 o& E0 K8 m4 y 1) 数组对象的复制& n# f+ j' S$ `6 b# k- j# W' D
: ^1 L5 L8 {( Y+ k7 K
2) 数组的扩展问题% S) t5 b% i `" {) M- |
1 Java数组对象的大小是固定的, 数组对象是不能扩展的/ T8 G$ o4 }; b d
2 利用数组复制到方法可以变通的实现数组扩展/ n/ g( y B2 g
3 System.arraycopy() 可以复制数组
' h+ Y' z5 |0 N 4 Arrays.copyOf() 可以简便的创建数组副本8 w7 u4 U6 A* J7 m: r! o
5 创建数组副本的同时将数组长度增加就变通的实现了/ t5 K- u8 g1 p z* f
数组的扩展2 l0 d& Q7 h2 x1 E, a1 N
1 C9 ]& R1 W/ Z+ X4 s( [8 t
案例1 : 统计一个字符在字符串中的所有位置.
) N) U7 `: Y8 G& T1 J' P; s 字符串: 统计一个字符在字符串中的所有位置1 ^" [- L/ d( d9 a* S
字符: '字'/ t! T% A0 T2 V4 o! u
返回: {4,7}
$ a9 [6 H4 P- C2 l4 K* {8 D2 ^' M5 g+ I2 ]7 V" G
6) 数组的迭代: 将每个数组元素重复的处理一遍.; v: ~7 \" w+ _; d3 z. l
for(int i=0; i<ary1.length; i++){( Z, d0 q/ W% O. H5 T3 ~# Z$ W1 ]/ r2 d
System.out.print(ary1[i] + " ");" a! C4 v. H( o. R3 C. A3 ?. {
}
2 d0 {, y u5 O) n5 C* u* W: n8 X$ r1 C2 c- {+ D' _
|
|