我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 盖世程序员 > Java 语言基础 Day04
总共48087条微博

动态微博

查看: 2940|回复: 4

Java 语言基础 Day04

[复制链接]

326

主题

72

听众

999

金钱

实习版主

该用户从未签到

优秀版主

跳转到指定楼层
楼主
发表于 2014-03-03 17:26:21 |只看该作者 |倒序浏览
1. while
! ]/ L9 I2 H& `. m  While 循环控制" }7 S+ ]" K8 t5 @4 \1 c  P0 A' y. E

4 F/ R/ x' z) I  Scanner console = new Scanner(System.in);
: y! }1 T* ]6 S: F2 I- p  while(布尔表达式){
8 q* B0 @' D/ L, e% T4 `* w      qty = console.nextInt();) ?* a; t3 q# @+ G" {2 X' }
      if(qty>0 && qty<=5){            //五个以内8 n" Z; b8 D5 L. p  [% K% _( I* o
        break;                        //打断, 打断当前循环( a6 F# O3 l6 t$ g2 w% n" ]- W
      }+ D1 a5 [* d# T# T7 }1 z
  }- A5 W  r9 r; g1 \4 H
% a# p) W1 T* I8 ]8 b8 G4 ^
2. for 循环(主要用于几次的循环)
9 o4 Z# b: M; K6 z# u1 |  循环控制
. U% Z1 [) @/ t1 j% Z% d  for(初始化表达式;布尔表达式; 递增表达式){* ~' _6 I! G5 Y
          //循环体/ P2 |# |6 O' J8 {( [
  }! Q# \5 y7 k1 X% L# j! o) `3 l
  for(;;){6 o* s5 V0 y& E1 b# @
  }9 |9 V. H. b$ ]' e1 L
  for(int a=1, b=3;;){
4 \2 Q$ [$ f& J  }
8 R# X& B6 M: b0 n, n3 g' Z! c! a2 O4 H3 L# f% A

5 P: p- D( Z- q; A. g+ ^, J3 f& }  Example:
$ q- o. E3 ^, S+ h- g9 Q2 u- ]  for (int i = 0; i < array.length; i++){. k* i* K4 K1 \( j6 ^
          System.out.println(i);
# i* T* E; ^0 O7 T3 C  }
  l6 V3 l1 X* J* I) b+ q8 Z
: T3 F0 W9 b- l* F3. do ... while
* t3 Y  ]8 B' v: ]9 b   do ... while() 循环控制
0 H* W! x6 C, J4 l5 I! i" i8 J/ e   do{  B. j  L4 x& @1 f( N3 C8 Z
           //循环体
/ s: \; B% n% B4 U   }while(布尔表达式);# l+ E2 @8 t1 M+ Y) y9 N
   Example:
" g0 N1 V6 M( l$ o* o; R   do{+ S% R( y+ P' ?2 ^9 l' u
      System.out.print("输入押注数量:");
& N# p# K  X4 d7 }( |9 Q      bet = console.nextInt();! V: q$ A# m% Z+ n
   }while(bet <= 0 || bet > balance);  //否定条件' q  A5 g/ g2 v. {5 k4 d) m

& f( M$ z' l2 K1 t& O4. java Array# ]2 w. j+ I2 `1 ]
1) 数组变量的声明5 H8 Y+ f7 ^# c
   int[] ary; 声明了数组变量 ary, 数组变量是代词,
+ P* Q/ z0 C  \9 A. w4 D7 U1 f   int ary[]; 为了与C语法兼容的写法, 不建议写法,
* Z; r$ e9 c7 Z8 m% I+ ]2 H& f) C; A9 \, V0 i
2) 数组对象动态初始化$ _6 r7 I, b; _5 m5 n( K* Q  G, M
   ary = new int[4]; //数组变量引用了具体数组对象, 就是代词; G1 ]$ F- h) E# d
   指代了具体事务.
7 I- R3 i* ?6 s3 ^' w   数组元素是自动初始化的, 自动初始化为"零"值.
0 M+ E" Y; K5 I$ {  "零"值: 0, 0.0, \u0000, false, null
; F! R- K3 ^8 G! h. }   ary = new int[]{1,2,3}; 直接给出元素的初始化* p+ u5 B* s& T! d4 |8 |
3) 数组对象的静态初始化, 只能用在声明数组变量时候同时初始化
: O/ D+ `1 I9 F, [% f, J4 w. ]    * 不能用于赋值语句( _/ |* |$ s( J% d' g. U
   int[] ary = {1,2,3};
/ @6 @) D2 Y+ }( \3 }   ary = {3,4,5,6};//编译错误
0 V% N# l3 m/ o1 O% W% k$ C7 C0 y" V) Q1 w
  Java关键字: if, public, class, else, while
$ D& g8 C3 Q" T% F' ~0 T' V1 j  特殊关键字: goto, const
8 s  J% X+ N. f0 p5 a9 v  java中 true, false, null 不是关键字, 是字面量!6 @' P( x- _; u3 Z5 F: X% _9 I* t
; M) u& l% W8 g# ^( s& B
4) 数组变量, 数组对象, 数组元素 4 `2 |, ]; N) Q  F
   如: int[] ary = {1,2,3};
! j$ ^' V1 p: q( x     ary 是 数组变量 指代一个具体的数组, 同一个变量指代不同的数组; J8 @  {2 h# F0 s3 w0 ]" _( x/ p
     {1,2,3} 数组对象
/ j4 N) S* P+ F     1,2,3 是数组元素
' c+ V# ~% a& _, X
% n! r0 o: P5 O7 M5 X9 z2 s 5) 数组元素的访问, 数组对象的大小是固定的,长度是n,下标: 0~n-1
, T9 I6 s# z+ S* f" f9 ]# B. d$ {% R7 \  A 使用[下标] 访问数组元素
5 M* C2 d% j( U1 I1 c$ Y& [2 x  B 越界访问(小于0/大于等于n), 都会发生运行异常0 F6 Q! A7 F, ]$ n! }
  C 使用.length 属性可以获取数组对象长度) S- D4 r7 Z0 o) \1 m$ j7 J4 m

+ R; h5 ]4 q7 h" w. D, r# E5 数组的复制与动态扩展算法/ c3 z1 ~6 O/ ]8 `4 l4 K
1) 数组对象的复制: l) o* f) f/ w5 G$ u" z& T
/ S4 L5 d  o: g! }4 ?
2) 数组的扩展问题
5 N9 J* M1 h& _1 q8 P  1 Java数组对象的大小是固定的, 数组对象是不能扩展的
9 Y9 h( r" l+ c& B  d4 w8 U* H& O  2 利用数组复制到方法可以变通的实现数组扩展
: h  i  N0 c' P  3 System.arraycopy() 可以复制数组& ]& M0 e% }3 X1 E
  4 Arrays.copyOf() 可以简便的创建数组副本
) z: O6 ]* _( D+ K( z: Z  5 创建数组副本的同时将数组长度增加就变通的实现了, N  H/ c+ _, t/ i/ X
    数组的扩展& u9 l+ x! w) [7 }

1 Z' M4 U0 m8 |  案例1 : 统计一个字符在字符串中的所有位置.
/ T' I% f3 K0 i! t0 n2 q        字符串: 统计一个字符在字符串中的所有位置1 W6 y5 l5 L0 h$ C  i
        字符: '字'
$ N0 z0 A4 s( E        返回: {4,7}( Q& W" L% l, J4 C
7 k. M3 t4 ]* K5 y$ I1 v; a
6) 数组的迭代: 将每个数组元素重复的处理一遍.9 j" Z" {$ ?+ K$ o
        for(int i=0; i<ary1.length; i++){
2 K8 V' F; z5 _/ s4 l      System.out.print(ary1[i] + " ");1 B6 [- ?( s0 \' r- J4 p+ g
    }
- I, q0 G! `  V) f% r5 f2 d. X( d8 E2 G
作业:
; ~7 G$ C, Z; S, c  1 复习并且完成 全部 课堂演示代码, 添加适当的. y( T  @; s4 D' o
         输出语句, 研究输出结果, 添加适当的注释.
! S1 l& G) N9 f4 B9 x9 @  2 实现案例:' j1 [" v5 D3 q0 R( @  @
        案例1 : 统计一个字符在字符串中的所有位置.. i3 b: u0 u" L2 G3 M1 \& ~
        字符串: 统计一个字符在字符串中的所有位置: ^* E4 N- Q1 c/ |; U
        字符: '字'7 ?. F8 a$ ^& u
        返回: {4,7}
9 d( t' p7 N# J' U) E& C! T" n        public static int[] count(String str, char key){}+ l2 P. L6 h1 {2 o: r/ g, g$ m
        6 {% J9 R/ b  w' S+ v
        char key = '字';: b4 T. F) ^% k6 k  H+ r8 G
        String str = "统计一个字符在字符串中的所有位置";
" r; F" W6 U- j2 H# s) `        int[] count = {}; , w2 f( a$ O  r$ l
        for(int i=0; i<str.length();i++){1 n  w* t4 m, X! u
          char c = str.chatAt(i);5 x) c- h' F4 K) e; Y
          if(c==key){
$ U; \6 `7 T/ z8 i5 Q: e2 P% s                  //扩展数组, / s. a% b! T1 @$ o, j
                  count = Arrays.copyOf(count, count.length+1);, D5 M+ n- ~3 l, O
                  //添加序号 i
$ D% q9 t0 G; G* T% ^6 Z                  count[count.length-1]=i;: j" M6 n4 c; P0 U8 j' |& M
          }
3 |. x0 u7 e$ i' M        }  @% `  ]4 x9 x8 ?- G# o7 n, G
       
' _! i( s0 ?: ]% b. b! F7 u
1 ^8 p) P; l- N4 |0 H        案例2 : 统计一个字符在字符数组中的所有位置.+ M- h  s: r8 z1 ~8 M
        字符数组: 统计一个字符在字符串中的所有位置. U  N# ?$ l. C& E9 N7 [
        字符: '字'7 M; Z* R% j  `/ w1 t" _( i1 w
        返回: {4,7}
! E! ^8 @: `& f) Z+ S! n; O" z1 c; e' d
    案例3: 字符串统计案例:* ]* v! N: H$ \" s* {1 [6 ~
    字符串: "123456789012"
3 ]7 U) u# w% ?( [- Y0 e: {4 F     将字符串的奇数位数字相加为 c1 = 1 + 3 + 5 + 7 + 9 + 1
- l& s4 V0 h/ J2 y% @     将字符串的偶数位数字相加为 c2 = 2 + 4 + 6 + 8 + 0 + 29 ^  u4 n3 T- D% s7 M; k

6 s7 z# A7 l3 n0 N9 c, W6 ]3 q    案例4: (选做) 将一个整数数位翻转
9 S# @% W2 W8 @9 i' M, M( ]     如: 整数 56123 int i =56123%10=3
* d9 _9 ]+ U4 F                    int s=56123/10=5612
$ a3 }% T$ m- \9 l& T& N$ y' G                
3 s) a0 m! ]' z$ I) k6 {3 b% u4 k7 b/ a# `
     返回结果为整数:  321652 C9 r+ J/ \( _) ^7 C( [# L
     提示: 使用 %10 获取最后一位
5 B' Q" v5 g" H. Z3 X9 t- o: L           使用 /10 去除处理完的最后一位3 f' P3 I; b, ~- c# T
/ x. D% K8 A; E% O: U; l6 w& S

科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

2

主题

0

听众

148

金钱

三袋弟子

该用户从未签到

沙发
发表于 2015-10-15 13:45:29 |只看该作者
看了看  学习学习  哈哈哈哈
回复

使用道具 举报

1

主题

3

听众

341

金钱

四袋长老

该用户从未签到

板凳
发表于 2016-03-17 21:57:57 |只看该作者
学习一下。谢谢
回复

使用道具 举报

woniu 实名认证   

2

主题

0

听众

330

金钱

四袋长老

该用户从未签到

地板
发表于 2016-04-12 12:23:16 |只看该作者
这个项目太棒勒!下下来学习下!
回复

使用道具 举报

5

主题

0

听众

316

金钱

四袋长老

该用户从未签到

5#
发表于 2017-08-12 20:48:16 |只看该作者
不错不错不错不错
回复

使用道具 举报

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表