zoukankan      html  css  js  c++  java
  • Java笔记3for,switch循环,格式化输出,随机数

    大纲:
    一、分支结构
    if
    switch
    二、循环
    for
    while
    do while
    break
    continue
    三、格式化输出 【printf】

    int score = 100;
    String name = "张三";
    int number = 19;
    System.out.println(name + "的分数是" + score + "分,排名为第" + number + "名.");
    换用格式化输出:
    System.out.printf("%s的分数是%d分,排名为第%d名.\n",name,score,number);
    %s 字符串
    %d 整数
    %f 浮点数
    \n 换行
    \t 隔开一个tab的距离


    --------------------------------------------
    switch 语句
    也是用来做分支的,与if不同,它只能做等值比较。
    switch能完成的业务,if也可以完成。

    语法:
    switch(变量因子){
    case 值1:
    [code block;]
    [break;]
    case 值2:
    [code block;]
    [break;]
    ...
    case 值N:
    [code block;]
    [break;]
    [default:]
    [code block;]
    [break;]
    }
    注:
    变量因子的类型有:
    byte, char, short, int
    枚举 【JDK5.0】
    String 【JDK7.0】

    案例:
    提示用户从键盘输入年与月,输出此年此月最大多少天。
    //提示:
    java.util.Scanner
    // 变量

    ====================
    补充运算符
    成员访问运算符
    .
    赋值运算符
    =
    算术运算符
    +,-,*,/, %, ++, --, +=,-=,*=,/=,%=
    比较运算符
    >, <, >=,<=, ==, !=
    逻辑运算符
    &&, ||, !
    位运算符
    & 按位与
    | 按位或
    ~ 按位取反
    ^ 按位异或
    >> 右移位 【高位补符号位, 0代表正数,1代表负数】
    >>> 无符号右移位【高位总是补0】
    << 左移位
    &=, |=, ^=, ~=, >>=, >>>=, <<=

    如:
    int i = 13;
    int j = 12;
    int result = i & j; // 12

    进制:
    二进制, 以 0 与 1组成
    注:计算机中存储的数据都是以 二进制形式存在的。
    JAVA中没有二进制的 字面量

    八进制, 【0,7】
    注:
    JAVA中有8进制字面量,以0开头
    如:
    int i = 017; //ok, 相当于10进制的:15

    十进制, [0,9]
    10 > 2: 除2法
    如:
    i = 19; =》 10011

    2 -> 10: 乘幂相加法
    如:
    假设有二进制字符串:1010110 , 它对应的10进制:86

    十六进制【0,9A,Z]
    注:JAVA中有16进制字面量,以0X或0x开头
    如:
    int i = 0x1F; //ok, 相当于10进制的 31

    -------------
    位运算符应用口决:
    清0取位要用与,某位置1可用或;
    若要取反与交换,轻轻松松用异或。

    --
    案例:
    比如:给定任意整数,取出最后1位。
    需要指定掩码[mask], 这个mask = 1即可。
    int i = ...;
    int mask = 1; //1
    int result = i & mask; // 这样就可以获取整数i的最后1位。

    同理,如果是取低3位呢? mask 应该是 7
    mask = 7; // 111

    --------------
    ~ 取反运算符是“破坏”性的取反,是针对所有位的。
    int i = 5;
    int j = ~i; //j = -6

    如果采用异或,它的取反是可以针对“指定位”的
    000000000... 0101
    只要把 mask 置为 0XF[1111] 即可以把后4位取反。其它位不变

    ---------------------
    交换:
    定理:任一整数与另一整数连续异或2次,其值不变。
    ==============================

    for循环

    外层for循环执行一遍,内层for循环全部执行完毕
    语法:
    for(expression1;expression2;expression3){
    //循环体
    }
    注:
    expression1 表示循环初始化语句,只执行1次
    expression2 表示循环条件判断语句,每循环1次,就执行1次
    expression3 表示循环因子变化语句,每循环1次,就执行1次
    以上三个表达式都可以省略,如:
    for(;;){
    // 死循环
    }

    如:循环10次
    for(int i=0;i<10;i++){
    System.out.println("i"+i);
    }
    或:
    int i =0;
    for(;i<10;i++){
    System.out.println("i"+i);
    }

    ==============
    while 循环
    语法:
    while(条件表达式){
    //循环体
    }
    注:
    当条件表达式成立时,则执行循环体。然后再判断,依次类推。
    如:
    while(true){
    // 死循环
    }
    ==
    如果能确定循环次数,优先使用 for
    反之, 不确定循环数次,优先使用 while
    --
    如果使用while 循环10:
    int i = 0;
    while(i < 10){
    System.out.println("i = "+i);
    i ++;
    }
    --
    案例:
    循环产生随机数[1,100], 当生成的随机数刚好是50时,则退出循环,
    次输出第几次生成了50.

    如何生成随机数?

    1).利用 java.util.Random 类
    Random rd = new Random();
    rd.方法();
    注:1)import
    2)创建对象
    Code:
    Random ran = new Random();
    int n = ran.nextInt(100) + 1; //生成随机数
    2).利用 Math 类中的 random 方法
    Math.random();
    1)返回的类型是double
    2)范围是[0,1)
    Code:
    int n = (int)(Math.random()*100)+1;

    ---

    赢在别人休息时,让优秀成为一种习惯。
  • 相关阅读:
    使用SOCKET实现TCP/IP协议的通讯
    多线程和高并发的区别
    linq学习之join
    Winform 创建桌面快捷方式并开机启动
    引领5G行业化,广和通荣获“IoT创新大奖”
    全方面的了解超宽带信号高速采集记录回放系统
    浅谈智慧灯杆的通信网建设要求
    逆向工程,调试Hello World !程序(更新中)
    融合智能将成时代方舟?中科创达技术大会向未来答疑
    第十一届蓝桥杯赛后体会和经验分享
  • 原文地址:https://www.cnblogs.com/tarek/p/5402902.html
Copyright © 2011-2022 走看看