文章目录
- 前言
- 1.逻辑控制语句的分类
- 1.顺序结构
- 2.分支结构
- 2.1.if结构
- 2.1.1.if...else语句
- 2.2.2.if ... else if... else语句
- 2.2.switch语句
- 3.循环结构
- 3.1.while
- 3.2.break
- 3.3.continue
- 3.4.for循环
- 3.5.do while循环
- 4.输入输出
- 4.1.输入到控制台
- 4.2.从键盘输入
前言
前两篇文章,我们初步了解了Java语言,今天我们写一篇关于逻辑控制的文章
1.逻辑控制语句的分类
- 1.顺序结构
- 2.分支结构
- 3.循环结构
1.顺序结构
顺序结构比较简单,按照代码书写的顺序一行一行执行。
public static void main(String[] args) {
//1.顺序结构
System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
}
2.分支结构
2.1.if结构
语法结构:
if(布尔表达式){
语句
}
public static void main(String[] args) {
//1.if(布尔表达式)
int score=90;
if(score>=90){
System.out.println("Your score is great");
}
}
注意:判断条件一定是布尔表达式,不能是if(1)…,
if(1){
System.out.println("Your score is great");
}
2.1.1.if…else语句
语法:
if(布尔表达式){
语句1
}else{
语句2
}
判断一个数是奇数还是偶数
int n=2;
if(n%2==1){
System.out.println("n is an odd number");
}else{
System.out.println("n is an even number");
}
2.2.2.if … else if… else语句
判断一个学生成绩(A,B,C,D,E)
public static void main(String[] args) {
int score=88;
if(score >= 90){
System.out.println("A");
}else if(score < 90&&score >= 80){
System.out.println("B");
} else if (score >= 70 && score < 80) {
System.out.println("C");
} else if (score >= 60 && score < 70) {
System.out.println("D");
}else {
System.out.println("E");
}
}
注意:悬垂 else 问题
int x = 10;
int y = 10;
if (x == 10)
if (y == 10)
System.out.println("aaa");
else
System.out.println("bbb");
建议:不要这样写,最好加上大括号。
2.2.switch语句
语法:switch(表达式){
case 常量值1:{
语句1;
[break;]
}
case 常量值2:{
语句2;
[break;]
}
…
default:{
内容都不满足时执行语句;
[break;]
}
}
int a=10;
switch (a)
{
//case之后必须是常量值
case 10:
System.out.println("a == 10");
break;
default:
System.out.println("a!=10");
}
判断是星期几
byte day=5;
switch (day)
{
case 1:
System.out.println("星期二");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
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;
}
注意:1.switch的括号内只能是以下类型的表达式
基本类型:byte、char、short、int,注意不能是long类型
引用类型:String常量串、枚举类型
2.switch不要使用嵌套
public static void main(String[] args) {
int x = 1;
int y = 1;
switch(x) {
case 1:
switch (y) {
case 1:
System.out.println("hehe");
break;
case 2:
System.out.println("haha");
break;
}
}
}
3.循环结构
3.1.while
语法:
while(布尔表达式){
语句1;
}
计算1—100的和
public static void main(String[] args) {
//1.计算1--100的和
int n=1;
int ret=0;
while (n<=100){
ret+=n;
n++;
}
System.out.println(ret);
}
计算5的阶乘
int n=1;
int ret=1;
while (n<=5){
ret*=n;
n++;
}
System.out.println(ret);
计算1!+2!+3!+4!+5!的和
//计算1!+2!+3!+4!+5!的和
int n=1;
int sum=0;
//外部负责相加
while(n<=5){
int tmp=1;
int ret=1;
//里面负责阶乘
while (tmp<=n){
ret*=tmp;
tmp++;
}
sum+=ret;
n++;
}
System.out.println(sum);
3.2.break
找到 100 - 200 中第一个 3 的倍数
break 的功能是让循环提前结束.
//找到 100 - 200 中第一个 3 的倍数
int n=100;
while (n<=200){
if(n%3==0){
System.out.println(n);
break;
}
n++;
}
}
3.3.continue
continue 的功能是跳过这次循环, 立即进入下次循环
public static void main(String[] args) {
//continue 的功能是跳过这次循环, 立即进入下次循环
int i=1;
while(i<=10){
if(i==7) {
continue;
}
//当i==7时,下面的代码就不执行了,进行到了死循环
System.out.println(i);
i++;
}
}
求出 1-100之间 所有既能被3 也能被5 整除的数字
要使用break 或者continue 做
public static void main(String[] args) {
//求出 1-100之间 所有既能被3 也能被5 整除的数字
// 要使用break 或者continue 做
int i=0;
while (i<=100){
if(i%15!=0){
i++;
continue;
}
System.out.println(i+" ");
i++;
}
}
3.4.for循环
语法:
for(表达式①;布尔表达式②;表达式③){
表达式④;
}
表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
表达式2: 循环条件,满则循环继续,否则循环结束
表达式3: 循环变量更新方式
计算5的阶乘
public static void main(String[] args) {
int ret=1;
for (int i=1;i<=5;i++){
ret*=i;
}
System.out.println(ret);
}
计算1!+2!+3!+4!+5!的和
int sum=0;
for(int i=1;i<=5;i++){
int tmp=1;
for (int j = 1; j <= i; j++) {
tmp*=j;
}
sum+=tmp;
}
System.out.println(sum);
3.5.do while循环
语法:
do{
循环语句;
}while(循环条件);
打印1—10
int n=1;
do {
System.out.println(n);
n++;
}while (n<=10);
4.输入输出
4.1.输入到控制台
语法:System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出
println 输出的内容自带 \n, print 不带 \n
printf 的格式化输出方式和 C 语言的 printf 是基本一致的.
4.2.从键盘输入
import java.util.Scanner;//导入包
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
System.out.println("请输入你的工资:");
float salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
sc.close(); // 注意, 要记得调用关闭方法
}
完