Java笔记3-for,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;
---
Java笔记3-for,switch循环,格式化输出,随机数的更多相关文章
- while循环 格式化输出 密码本 编码的初识
第二天课程整理 while 循环 why : while ' 循环' 的意思 what : while 无限循环 how : 1.基本结构 while + 条件 循环的代码 初识循环 while tr ...
- while循环 格式化输出 运算符 编码
一.while循环 1.基本结构 while 条件: 循环体 流程: 判断条件是否为真. 如果真, 执行代码块. 然后再次判断条件是否为真 .如果真继续执行代码块.... ...
- DAY2---Python---While循环,格式化输出,运算符,编码
一.while循环 while 条件: 代码块(循环体) 流程:判断条件是否为真,如果是真,执行代码块.然后再次判断条件是否为真,如果为真继续执行代码块... 直到条件变成了假,退出循环 #死循环:永 ...
- python之while循环/格式化输出/运算符/初始编码/成员变量
一.主要内容:1.while 循环 (难点)while 条件: 循环体 break: 直接跳出循环continue:停止当前本次循环,继续执行下一次循环.不会中断循环能让循环退出:(1)break ( ...
- python---02.while循环 格式化输出 运算符 编码
一.while循环语句 1.while 条件:(如果条件是真, 则直接执⾏循环体. 然后再次判断条件. 直到条件是假. 停⽌循环) 循环体(break continue) 2. break: 立刻跳 ...
- Java String 函数常用操作 & format() 格式化输出,代码详解
package _String_; import java.util.*; import java.math.*; import java.lang.*; public class _Strings ...
- while 循环,格式化输出,运算符(not,and,or)
一,while 循环 1. 循环. while循环 while 条件: 代码块(循环体) 执行流程: 1. 判断条件是否为真. 如果真. 执行代码块 2. 再次判断条件是否为真...... 3. 当条 ...
- python全栈 流程控制;while 循环 格式化输出 运算符 及编码
python全栈开发 1循环 2break和continue的区别 3格式化输出 4运算符 5编码 一.流程控制while循环 while条件: 代码块(循环体) 1.死循环; while True; ...
- 02_python_while循环/格式化输出/逻辑运算
一. while循环 1.基本形式 while 条件: 循环体 # 判断条件是否为真,如果真,执行代码块.然后再次判断条件是否为真.如果真继续执行代码块...直到条件变成了假.循环退出 ps:死循环 ...
随机推荐
- 读《编写可维护的JavaScript》第一章总结
第一章 基本的格式化 1.4 ① 换行 当一行长度到达了单行最大的字符限制时,就需要手动将一行拆成俩行.通常我们会在运算符后换行,下一行会增加俩个层级的缩进. // 好的做法: 在运算符后换行,第二行 ...
- HTML布局与框架
HTML块 HTML块元素 块元素在显示时,通常会以新行开始 如:<h1>.<p>.<ul> <!DOCTYPE html> <html> ...
- Linux下文件重命名、创建、删除、修改及保存文件
一.重命名(更名) linux 给文件改名的命令是mv命令 mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中.该命令等同于DOS系统下的ren和move命令的组合.它的使用权限是所有用户. ...
- Google Protocol Buffer的安装与.proto文件的定义
什么是protocol Buffer呢? Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准. 我理解的就是:它是一种轻便高效的结构 ...
- springboot
http://7player.cn/2015/08/30/%E3%80%90%E5%8E%9F%E5%88%9B%E3%80%91%E5%9F%BA%E4%BA%8Espringboot-mybati ...
- javasrcipt中的for in 循环
function myFunction(){ var x; //声明变量x: var txt=""; //声明变量txt并赋值为空: var person={fname:&qu ...
- Java过滤器,SpringMVC拦截器之间的一顺序点关系
由于最近做的项目中有一部分是接口远程调用,用到了接入权限和业务权限的鉴定,需要采用SpringMVC的拦截器,以前用Struts2的时候用过拦截器,而SpringMVC的拦截器功能之前没研究过,所以这 ...
- Java—常用数据类型
1 Vector类 Vector类似于一个数组,但与数组相比在使用上有以下两个优点. (1) 使用的时候无需声明上限,随着元素的增加,Vector的长度会自动增加. (2) Vector提供额外的方 ...
- Octopus系列之价格计算公式
百分比:在原价的基础上优惠5%,相当于95%折销售实际价格:最后实际销售的价格[基准价格:如果有特价就基于特价,没有特价基于原价]优惠金额:减少的金额 批量优惠 百分比: 原价*(1-5%)的算法实际 ...
- CodeForces #367 div2 D Trie
题目链接:Vasiliy's Multiset 题意:这里有一个set容器,有三种操作,+ num, - num, ? num,分别代表往容器里加上num,或者拿走num,或着从容器里找一个数temp ...