TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
1. while
& J u5 y- [& ^" U While 循环控制$ S- w8 I/ j4 A5 \6 o/ Y* I
6 n3 \; _& [& r9 k# ] Scanner console = new Scanner(System.in);8 i9 p: G E: j2 }" c
while(布尔表达式){5 y! F5 M" B0 U) l9 V
qty = console.nextInt();
- u: \% [; M7 f1 C8 w- Z if(qty>0 && qty<=5){ //五个以内7 G4 W( V8 R. m6 A. c8 J
break; //打断, 打断当前循环, y* y! w8 P# w! s/ a8 D
}
: a9 X9 J5 Q- [) A) n T3 g }' l8 U% }* U0 n
0 E& c# m/ P8 A; b) U2. for 循环(主要用于几次的循环)% [* g' n2 W" J' @2 R
循环控制, v$ o; O% k0 C6 n6 i
for(初始化表达式;布尔表达式; 递增表达式){
4 v0 m/ x+ h( X7 A& h //循环体! h6 j6 o. j4 f/ a5 I# G+ h
}
9 {0 e* G! r* ^ for(;;){
! S4 _6 i. C9 u! @% M8 ~7 j h2 U }
. ?# U9 U! _- ]" `: F- Q for(int a=1, b=3;;){" h% |- o' \! m
}) \- D- {; }3 `0 G, B
. P( M! b: f, S3 e4 h, U* e
9 q) X4 a9 }3 |. v2 I7 i1 h' U' j Example:' W7 ~$ [* E" z m
for (int i = 0; i < array.length; i++){
2 q+ o$ U! Z* o5 r System.out.println(i);, n4 f3 G) _% Q( l- D
}$ u5 N) j* y. V* k+ i
* t% g; R4 j5 I/ e3 g3. do ... while
! l0 Z3 f- ^8 M do ... while() 循环控制( s$ B. V0 y$ z9 u: @8 V
do{
7 R u2 e3 ~) W/ O" }9 J6 L //循环体2 P0 w* ?! ^& Z
}while(布尔表达式);
C; {( [! c* c# Y Example:
* Q" ]. y( Q" D- D( z' F. S do{9 i, z$ i. Q- u: y# R/ d
System.out.print("输入押注数量:");
T) A: J; N4 W" D bet = console.nextInt();6 r6 m9 I; y4 L; q& g9 u
}while(bet <= 0 || bet > balance); //否定条件0 A6 N5 E( f! q" A2 {' i n; M3 b
; q" y9 g% I! P! _
4. java Array
& t' L1 {, ?8 @# x 1) 数组变量的声明
, I8 E9 F. L1 r3 [3 J' O% V( l int[] ary; 声明了数组变量 ary, 数组变量是代词,' V1 J% u P$ Y8 S6 M: @) P, A ~
int ary[]; 为了与C语法兼容的写法, 不建议写法,
% i1 L' w$ D3 z# [
; x" j8 q3 }/ e3 y 2) 数组对象动态初始化, b3 }5 |: x2 i
ary = new int[4]; //数组变量引用了具体数组对象, 就是代词8 q& U- Q! g0 {( ?
指代了具体事务.
% Q& |- p6 V& Y) D4 {/ e$ X2 `5 y 数组元素是自动初始化的, 自动初始化为"零"值.
" N, @0 o7 F8 j/ b5 J "零"值: 0, 0.0, \u0000, false, null
N6 c# q, s/ ]$ _ ary = new int[]{1,2,3}; 直接给出元素的初始化5 k2 d, b1 F* D1 I
3) 数组对象的静态初始化, 只能用在声明数组变量时候同时初始化' D; Q7 u! ~: J9 p/ ^; R
* 不能用于赋值语句
* ?3 N% y0 l# T% B int[] ary = {1,2,3};
8 Y! F" Y* E5 i6 v6 _ ary = {3,4,5,6};//编译错误
: ~+ v) i* d1 m% y) w$ B6 V3 x
8 D4 F3 d$ c6 [0 P Java关键字: if, public, class, else, while+ k, l4 r( l4 p6 X1 A
特殊关键字: goto, const
9 G& G, J# c% s: ~. H3 G3 T java中 true, false, null 不是关键字, 是字面量!
( o+ `# z2 c% \4 |$ Y: R$ r# U$ Z; B
4) 数组变量, 数组对象, 数组元素 8 k2 |/ j- J8 I6 \ M
如: int[] ary = {1,2,3};0 b$ Z) y' f9 P+ N7 v1 j1 T) ^
ary 是 数组变量 指代一个具体的数组, 同一个变量指代不同的数组2 ]& ]3 W) Y% c8 Z4 ^3 o. @- k
{1,2,3} 数组对象
$ Q5 p( V* ?3 u; ~% j& G 1,2,3 是数组元素0 O3 f B1 L/ F. }0 _
8 g* s9 q8 m5 K5 n9 }9 t
5) 数组元素的访问, 数组对象的大小是固定的,长度是n,下标: 0~n-1
( U8 b* y% R$ i1 j* u# V A 使用[下标] 访问数组元素
1 ?- H/ p; t' u4 ]9 t. Q2 ^ B 越界访问(小于0/大于等于n), 都会发生运行异常
' G& S, F5 h1 i3 O |. B C 使用.length 属性可以获取数组对象长度
6 R' g' `- G# N
8 U1 `* G. R/ T! q7 @+ g+ h2 B5 数组的复制与动态扩展算法: j& P$ s" k0 ]( \
1) 数组对象的复制
8 t+ f4 P4 c+ a, C/ j/ [6 V& k$ g: W: |
2) 数组的扩展问题
+ J; i* g1 S5 t/ j8 D 1 Java数组对象的大小是固定的, 数组对象是不能扩展的
a9 m! N" T# @* q. x* A! w& x 2 利用数组复制到方法可以变通的实现数组扩展; S/ Z5 I6 \4 Y% p, l& q
3 System.arraycopy() 可以复制数组
+ W. x( L, {& x 4 Arrays.copyOf() 可以简便的创建数组副本
" r; N5 O& `1 l% t: h3 }2 I 5 创建数组副本的同时将数组长度增加就变通的实现了, a9 R: u3 Y( Y& t
数组的扩展
" {. Z! i s8 o5 U+ h2 k1 a" D8 N+ T1 Y) f1 P% x! r8 k8 \
案例1 : 统计一个字符在字符串中的所有位置.3 u$ V% S: \. D' r+ R
字符串: 统计一个字符在字符串中的所有位置4 {1 ?5 W' l/ E) S8 E) k
字符: '字'1 K2 C2 e+ E( X0 z$ R
返回: {4,7}# B, I( ^1 D' R2 m' v1 {$ _0 u9 O
, C- b. Y% A, H7 E6) 数组的迭代: 将每个数组元素重复的处理一遍.
5 X) t+ A6 W- H# W% C' d) j! s* [ for(int i=0; i<ary1.length; i++){
. S4 [) H |' t/ R1 J- f; \! ]4 j) v# }) ~ System.out.print(ary1[i] + " ");
, @0 _& u S1 r }
- H$ t$ O6 Q- R3 l* o: W) g
& }+ B- \8 s5 M) X! X5 b0 w8 S# Y |
|