Java学习笔记(3)
运算符
- 算数运算符:+,-,*,/,%,++,–。
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instanceof。
- 逻辑运算符:&&,||,!。
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符:?:。
- 扩展赋值运算符:+=,-=,*=,/=。
Java流程控制
Scanner对象
所在包,java.util.Scanner是Java5的新特征,可以通过Scanner类来获取用户的输入。
基本语法
Scanner s = new Scanner(System.in);
通过Scanner类的next()与nextline()方法获取输入的字符串。
尝试示例:
import java.util.Scanner;
public class scanner {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// System.out.println("使用next方式接收");
// if (sc.hasNext()) {
// String str = sc.next();
// System.out.println("输入的内容为:" + str);
//
// }
System.out.println("使用nextline方式接收");
if (sc.hasNextLine()){
String str = sc.nextLine();
System.out.println("输入内容为:" + str);
}
sc.close();
}
}
输出结果为:
顺序结构
语句与语句之间从上到下顺序进行,他是由若干个一次执行的语句组成,是Java中最基本的流程结构。
选择结构
- if单选择结构
形式为:
if (条件) {
语句
} - if双选择结构
形式为:
if (条件) {
语句
}else {
语句
} - if多选择结构
形式为:
if (条件) {
语句
} else if (条件2) {
语句
} else {
语句
}
尝试代码示例:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("please input a score");
double score = 0d;
//单选择结构
if (sc.hasNextDouble()){
score = sc.nextDouble();
System.out.println("The score is "+score);
}
//双选择结构
if (score>=60){
System.out.println("及格");
} else {
System.out.println("不及格");
}
System.out.println("--------------------");
//多选择结构
if (score==100){
System.out.println("满分");
} else if (score >=90){
System.out.println("A");
} else if (score>=80){
System.out.println("B");
} else if (score>=60){
System.out.println("c");
} else {
System.out.println("不合格");
}
sc.close();
}
- switch多选择结构
尝试代码示例:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入一个等级");
String a = sc.next();
switch (a){
case "a":
System.out.println("优秀");
break;
case "b":
System.out.println("良好");
break;
default:
System.out.println("还需努力");
}
sc.close();
}
循环结构
while循环结构
形式为:
while(布尔表达式){
循环内容
}
只要布尔表达式成立,就会一直循环执行循环内容。
do while循环结构
形式为:
do{
循环内容
}while(布尔表达式)
while和do while的区别:
while是在每一次执行循环内容之前先进行一次布尔表达式的判断,do while则是在每一次执行之后进行一次布尔表达式的判断。
因此,while是有可能最初布尔表达式就不成立而一次都不会执行。do while无论布尔表达式如何,循环内容都至少会执行一次。
for循环结构
形式为:
for(初始化; 布尔表达式; 更新){
循环内容
}
**初始化:**是在执行for循环之前进行的一段语句,可以理解为对for循环中的某些变量的初始化。初始化是可以为空语句的,即不进行初始化。
**布尔表达式:**在每一次进行循环内容之前,进行一次判断,如果布尔表达式为真,则执行循环内容,否则直接结束for循环。
**更新:**在每一次执行循环内容之后,执行的一段语句。
增强for循环
JDK5之后才出现,用于遍历数组和集合使用。
形式为:
for(T x : 集合<T>){
循环内容
}
尝试代码示例
public class demo03 {
public static void main(String[] args) {
int i = 0;
while (i++<10) {
System.out.print(i + "\t");
}
System.out.println();
do {
System.out.print(--i + "\t");
}while (i>1);
System.out.println();
int sum = 0;
for (i=1;i < 10;i++){
sum += i;
}
System.out.println(sum);
}
}
break,continue
都是用来中止循环的语句。
当遇到break时,可以跳出当前循环,并且此为强制执行。
当需要continue时,会结束当前这次循环,紧接着执行下一次的布尔表达式的判断,继续本循环。
尝试代码示例:
public static void main(String[] args) {
for (int i =0 ;i<10;i++){
System.out.print(i + "\t");
if (i == 5){
break;
}
}
System.out.println();
for (int i =0 ;i<10;i++){
System.out.print(i + "\t");
if (i == 5){
continue;
}
}
}
goto
Java中不存在goto语句,这在汇编语句中经常被使用到。但是由于goto语句非常容易产生提前难以预料到的程序问题,因此在现在编程中少有使用goto功能的程序员。
Java中虽然不存在goto语句,但是通过break/continue + 标签的方式进行实现。
使用代码案例:
//求100到200之间的所有素数
outer:for (int i = 100;i<200;i++){
for (int j = 2;j<i/2;j++){
if (i % j == 0){
continue outer;
}
}
System.out.print(i + "\t");
}