TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
1. while7 [$ v1 ]; d$ M3 e- D
While 循环控制& Q- \: x9 L& }+ t( |
; @# h( B+ J; z2 u3 G3 k Scanner console = new Scanner(System.in);
6 b$ U' t$ {0 A while(布尔表达式){
@: m' C2 O; D, x& ? qty = console.nextInt();7 {+ \+ r* p C2 W$ G6 i' J# a+ p
if(qty>0 && qty<=5){ //五个以内9 L3 }/ H! f8 R2 H3 A; L7 g$ o& J
break; //打断, 打断当前循环
|% ^# s! j( O9 M% n( T }
. H+ J: F, v4 Y" M }
* a; P! n2 ^! Q) |7 \" Z! @5 ~! J0 E' N
2. for 循环(主要用于几次的循环)# G m/ l. a* U1 Z( b4 j5 c2 M
循环控制
' c- u1 a5 Y ]2 | for(初始化表达式;布尔表达式; 递增表达式){
# Z& `+ B5 I0 v6 _* c X4 v //循环体
1 G* q' K1 o% t) \' y2 V6 o }; R8 }$ S5 b: c, Q, k5 C
for(;;){
6 w' u9 W" S/ W0 x4 ~- I }/ V5 [8 A; q4 g# V3 R J
for(int a=1, b=3;;){
7 u, ]8 a& ]! W6 u4 g }
# G0 c- ]3 ~6 \3 s& w: [
) N- W# k! W/ y6 d
7 |1 S( F! I% [4 S& F- W8 ` d Example:: F4 f9 u# `6 F. N; {; S
for (int i = 0; i < array.length; i++){3 C! C9 D2 M4 M6 P( F
System.out.println(i);
' W8 c7 H0 f5 b' ?* D b }
4 y* ^; X$ P- k
Z# T. \+ ?8 t. U3. do ... while
" Y1 ~1 t5 T' O% \, W2 c do ... while() 循环控制
, g5 q; s' x! e" ^* h( P do{1 I" L H k4 B9 G9 J0 a
//循环体
1 k9 T% h* c" K& d9 V0 Y5 j }while(布尔表达式);/ m- S1 i, |# z
Example:
" b; x2 R4 I3 D) L* C do{6 q+ F. K; E3 T3 }- V1 ?: Q
System.out.print("输入押注数量:");
. a6 ]4 \# Y5 R0 X) f( D% i W bet = console.nextInt();
8 L4 q: ]0 X9 @2 q }while(bet <= 0 || bet > balance); //否定条件2 j1 T9 Y: r3 }
8 H8 M7 b! ?5 Q3 f
4. java Array
" \$ |; c; U+ Q! d; a 1) 数组变量的声明8 n' ?+ k; i9 [3 V$ @4 u+ y
int[] ary; 声明了数组变量 ary, 数组变量是代词,
& o0 ~2 e7 W" z6 m+ U int ary[]; 为了与C语法兼容的写法, 不建议写法,
" Q" m4 f8 k; d' v! F) i0 Z) s9 r( ^6 B% b! O
2) 数组对象动态初始化
. v3 \' A# J/ y; W4 T4 p7 c$ p ary = new int[4]; //数组变量引用了具体数组对象, 就是代词, [1 @; o7 {2 B
指代了具体事务.
2 E. c8 T4 i* e7 k 数组元素是自动初始化的, 自动初始化为"零"值.6 C9 U) ~- P$ J8 r/ i2 w; O9 `
"零"值: 0, 0.0, \u0000, false, null; v8 I$ R6 T% g3 f
ary = new int[]{1,2,3}; 直接给出元素的初始化2 O% N( R7 ^) }# w
3) 数组对象的静态初始化, 只能用在声明数组变量时候同时初始化' {# z9 s7 A9 {1 _/ v
* 不能用于赋值语句
3 t5 y8 Y3 D0 ~6 X8 [ int[] ary = {1,2,3};
; ]8 Z; j1 D+ W d; D5 ] ary = {3,4,5,6};//编译错误
7 f0 L# r5 B9 w3 g5 Y" A1 s, q
3 r, f3 P7 x9 K7 m4 ~1 C% v9 `2 k7 y Java关键字: if, public, class, else, while
1 G( j' d$ T# U6 Q" E 特殊关键字: goto, const
- | P4 Y' ^- o7 G java中 true, false, null 不是关键字, 是字面量!
, A( \* ]7 O: T. c) g" f2 E
% E" ^/ j& M! K Z 4) 数组变量, 数组对象, 数组元素
Z# L1 _& p% i: o T 如: int[] ary = {1,2,3};' H" n, k$ H$ z8 H8 Y
ary 是 数组变量 指代一个具体的数组, 同一个变量指代不同的数组
# ?% l0 I0 i) ~ {1,2,3} 数组对象: S6 b7 ^0 ?& G& m w6 T1 x
1,2,3 是数组元素
4 \$ }" T& ]0 D; B$ R. l
3 R) p g# C' G5 N4 r 5) 数组元素的访问, 数组对象的大小是固定的,长度是n,下标: 0~n-1 / S( k& k" J! _& g u: F
A 使用[下标] 访问数组元素
+ q8 T0 c0 S8 b* D: A) z B 越界访问(小于0/大于等于n), 都会发生运行异常
+ ^( v) b- g+ B( b) E R; r# v( J C 使用.length 属性可以获取数组对象长度
+ Z) E8 X& W8 q, f* q8 y4 g( \- j U4 r0 u/ o7 W$ v5 `8 n
5 数组的复制与动态扩展算法
6 j/ N4 h: d7 [1 x) l; ?+ f 1) 数组对象的复制
& r1 }. x4 l( Y8 M [4 t) a6 ?3 m
2 | U, w* O& i8 w, }4 p; f 2) 数组的扩展问题
U4 K! M7 S- M7 D 1 Java数组对象的大小是固定的, 数组对象是不能扩展的0 i9 j% g0 a; q+ B4 `& |9 H
2 利用数组复制到方法可以变通的实现数组扩展
! b7 x5 l) o$ @' w9 e2 V 3 System.arraycopy() 可以复制数组" s% q! X- X& d# z
4 Arrays.copyOf() 可以简便的创建数组副本
0 a- M2 L& z# N+ H, [ 5 创建数组副本的同时将数组长度增加就变通的实现了! M$ v1 F$ c4 _# j0 U
数组的扩展- E; R6 U) B# z! G$ S: U
3 g* s2 h* l0 F! `- V# u 案例1 : 统计一个字符在字符串中的所有位置.0 h1 _9 L3 N4 E+ y7 H5 ~7 y! \
字符串: 统计一个字符在字符串中的所有位置# k/ j# _0 A* t( Y$ z+ q( q
字符: '字'
+ d2 }% r. \% O5 { 返回: {4,7}
# v, L" e, @# i! `2 ^: N' P7 D& ~) k x
6) 数组的迭代: 将每个数组元素重复的处理一遍.
5 X% K9 Q g* S% N! Z! h" c for(int i=0; i<ary1.length; i++){* i+ `; z) l) E- j3 H
System.out.print(ary1[i] + " ");
7 R0 s( e7 [) O0 u! v }; ?/ `( G+ L' d. D4 S3 p
3 B$ [5 T" H( @6 N! b |
|