位运算-流程控制
知识点:
-
位运算
-
&:按位与,两个数都是1,结果才是1.
-
|:按位或,两个操作数一个是1,结果就是1.
-
^ : 按位异或,两个 操作数相同,结果为0;两个 操作数不同,结果为1;
-
<<:左移,右侧空位补0,高位移出
- 正数
- 负数
注意:左移操作,在不越界的情况下,x << n等同于 x 乘以 2 的 n 次幂
-
:右移,左侧空位补最高位,即符号位。
注意:右移操作,在不越界的情况下, x >> n 等同于 x 除以 2 的 n 次幂
-
:无符号位移,高位补0
-
-
三目运算符: '条件' ?'表达式1' : '表达式2';条件为true时运行表达式1,条件为false时运行表达式2.
条件 的结果是布尔类型,只能是 true or false
如果 条件 的结果是 true 则返回 表达式1
如果 条件 的结果是 false 则返回 表达式2 -
三大流程控制:顺序结构,选择结构,循环结构。
-
Scanner
创建 Scanner 对象,用于获取控制台输入的流
Scanner input = new Scanner(System.in); System.out.println("请输入一个字符串:");
hasNext() 判断还有没有输入的值,如果有返回 true
boolean hasNext = input.hasNext(); if (hasNext) {
// next() 获取输入到的信息,空格和回车会中断获取
// String next = input.next();
// nextBoolean() 将获取到的信息,转换成 boolean 类型
// boolean b = input.nextBoolean();
//nextInt()将获取到的信息,装换为int型(nextFloat同样)
// int b = input.nextInt();
//获取当前行的输入
String next = input.nextLine();
System.out.println("你输入的是:" + next);
} close 为关闭Scanner对象
input.close();
-
单分支
如果if 里的代码只有一句,可以不写{},但是不推荐这么写
-
双分支
如果条件为true,执行 代码块1,否则执行 代码块2 if (条件){ // 代码块 1 } else{ // 代码块 2 }
Scanner input = new Scanner(System.in); System.out.println("你要找的对象性别:1. 男性; 2. 女性");
int gender = input.nextInt();
if (gender == 1) {
System.out.println("你是个女生!");
} else {
System.out.println("你是个爷们儿!");
} -
switch
switch(表达式){ case 表达式1:
// 代码1
break;
case 表达式2:
// 代码2
break;
...
default:
// default代码
break;
} -
while
计算1~100的和
int sum = 0; int num = 1;
while(num < 101) {
sum += num++;
}
System.out.println("1 ~ 100 的和是:" + sum);while条件为true是运行,equals:循环输入,直到输入' f '为止
Scanner input = new Scanner(System.in); System.out.println("输入一个字符串:");
String str = "";
boolean flag = true;
while(flag) {
String next = input.next();
if ("f".equals(next)) {
flag = false;
}else {
str += next;
}
}
System.out.println(str); -
do-while:
先执行循环体,在判断执行条件。至少执行一次,
计算1~100
int sum = 0; int num = 1;
do {
sum += num;
num ++;
}while(num <= 100);
System.out.println(sum); -
for: for(表达式1; 表达式2; 表达式3){ // 循环体 }
-
1.先执行表达式1 2. 执行表达式2,表达式2结果是一个boolean类型的 3. 如果表达式2结果是true 执行循环体 4. 如果表达式2,结果是false 循环结束 5. 循环体执行完毕后,执行表达式3 6. 表达式3 执行完,执行第2步。
-
表达式1 只执行一次,所以一般用来初始化数据 表达式2 是循环条件 表达式3 一般是修改循环变量
计算1~100
int sum = 0; int num = 1;
for (;num < 10;num++)
sum += num;
System.out.println(sum);
-
-
跳出循环的三种方式
-
break:在switch中,当执行到break,整个switch都执行局结束 在循环中,执行到 break,循环结束
-
continue 结束本次循环,进行下次循环
-
retrun 表示返回,return 后边什么都没有表示结束当前方法,返回到方法的调用出如果是main方法表示整个程序结束运行
-
-
循环嵌套:循环之间可以相互嵌套
循环嵌套的时候可以给循环命名命名之后可以通过控制语句,如 continue、break来控制循环跳出操作
方法如下:
outer: for(){ inner: for(){
continue outer;
break outer;
}
}continue [循环名称];
循环名称不写,默认是当前循环,如果写上循环名称,表示操作指定循环名称循环
eg: continue outer; 表示结束 outer 的本次循环
评论留言