Java学习(3)之程序逻辑控制
目录
- Java学习(3)之程序逻辑控制
- 一、分支
-
- 1.if语句
- 2.switch语句
- 二、循环
-
- 1.while循环
- 2.break
- 3.continue
- 4.for循环
- 5.do while循环
- 三、输入输出
-
- 1.输出
- 2.输入
- 总结
一、分支
1.if语句
- 形式1
运行结果:int num = 10; if (num < 20){ System.out.println("hello"); }
- 形式2
运行结果:int num = 10; if (num > 20){ System.out.println("hello"); } else{ System.out.println("world"); }
- 形式3
运行结果:int score = 90; if(score >= 90){ System.out.println("优秀"); } else if(score >= 80){ System.out.println("良好"); }else if(score >= 70){ System.out.println("中等"); }else if(score >= 60){ System.out.println("及格"); }else{ System.out.println("不及格"); } }
- Tips:存在一种特殊情况,就是负数。
运行结果:int num = -101; if(num % 2 == 1){ System.out.println("奇数"); }else{ System.out.println("偶数"); }
- 改正措施:
int num = -101; if(num % 2 != 0){ System.out.println("奇数"); }else{ System.out.println("偶数"); }
运行结果:
2.switch语句
基本格式:
int day = 1;
switch(day){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("输入有误");
break;
}
-
switch语句的局限性:
1.switch的()中只能放有限的几种类型。
2.break语句不能遗漏,增加了开发人员的工作量。
3.很难表达复杂的逻辑,因为case中的每个条件需要精确对应才能执行其条件语句。
4.虽然支持嵌套,但是不美观。
二、循环
1.while循环
//打印1-10
int num = 1;
while(num <= 10){
System.out.print(num + " ");
num++;
}
运行结果:
//打印1 + 2 + 3 + ... + 100;
int num = 1;
int result = 0;
while(num <= 100){
result += num;
num++;
}
System.out.println(result);
运行结果:
- 缓存(cache):对之前反复出现的数据进行存储“记忆”,避免重复计算,本质上是空间换时间。
- 缓冲区(buffer):计算机cup访问硬盘的效率比较低(差3-4个数量级),而访问内存的效率较高,进而在二者之间开辟出一块“区域”,提高内存访问效率。本质上也是空间换时间。
- IDEA中使用shift+F6触发rename功能。
2.break
- 表示结束整个循环
int n = 1;
while(n <= 5){
if(n == 3){
break;
}
System.out.println("吃第 " + n + " 个包子");
n++;
}
3.continue
- 结束这次循环,即:进入下次循环。
//吃包子问题演示break和continue
int n = 1;
while(n <= 5){
if(n == 3){
n++;
continue;
}
System.out.println("吃第 " + n + " 个包子");
n++;
}
运行结果:
4.for循环
- 基本形式
for(表达式1;表达式2;表达式3){
循环体;
}
- 表达式1是循环变量的初始化语句,只是在进入for循环时执行一次。
- 表达式2表示循环条件,表达式为true,执行循环体;表达式为false,结束循环体。
- 表达式3用于更新循环变量。
- 循环体在表达式2和表达式3之间执行。
//打印1-10
for(int num = 1;num <= 10;num++){
System.out.print(num + " ");
}
运行结果
- for循环最大的优势就是把循环语句的三个要素可以放到一起集中表示。
//计算1-100的和
int result = 0;
for(int num = 1;num <= 100;num++){
result += num;
}
System.out.println(result);
运行结果:
5.do while循环
//使用 do while 打印1-10
int num =1;
do{
System.out.print(num + " ");
num++;
}while(num <= 10);
运行结果
三、输入输出
1.输出
System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出
2.输入
- System.out 是标准输出
- System.in 是标准输入
- System.err 是标准错误
- 使用 Scanner 读取字符串、整数、浮点数
- Scanner 是Java标准库提供的一个类。 类就是一个高配结构体,也是一个自定义类型,对象就是该类型的变量;引用就是一个低配指针。
//使用Scanner的步骤
//1.先创建一个 Scanner 对象,将System.in作为参数传进去
//2.使用 import 语句导入 Scanner 类
//3.使用 scanner.nextXXX() 方法读取数据,其中XXX表示某种类型
Scanner scanner = new Scanner (System.in);
int num = scanner.nextInt(); //读取整数
double num1 = scanner.nextDouble(); //读取浮点数
String str = scanner.next(); //读取字符串
scanner.nextLine(); //读取有空格的字符串
System.out.println(num);
总结
以上就是我们今天所学的知识。