Java基础(四)

文章详细介绍了Java编程中的流程控制结构,包括复合语句(代码块)、条件语句(if和switch)以及循环语句(while、do...while和for)。此外,还讨论了循环控制语句break和continue的使用,并提供了多个实践训练题目,如成绩等级划分、季节判断和斐波那契数列计算等,以帮助读者巩固所学知识。
摘要由CSDN通过智能技术生成

目录

目录

流程控制

 复合语句

条件语句

【If语句】

【switch】语句

循环语句

【while语句】

【do...while语句】

【for循环语句】 

 循环控制

【break语句】

 【continue语句】

【 实践与练习】

【训练一】划分成绩等级

​编辑

【训练二】判断月份对应的季节 

【训练三】细胞分裂实验

【训练四】斐波那契数列

 【训练五】蜗牛爬井

【训练六】剧院售票


流程控制

 复合语句

     在Java语言中,复合语句(Compound Statement)也被称为代码块(Block),它是由一对花括号({})括起来的一组语句。复合语句可以包含多个语句,这些语句按照顺序执行。

复合语句通常用于以下情况:

  1. 定义方法体:在Java中,方法由方法签名和方法体组成。方法体就是一个复合语句,它包含了方法的实际执行逻辑。

    public void doSomething() {
        // 方法体开始
        // 这里可以包含多个语句
        int x = 10;
        System.out.println("Hello, world!");
        // 方法体结束
    }

  2. 控制结构:控制结构(如if语句、for循环、while循环等)通常需要执行多个语句,此时可以使用复合语句来包含这些语句。

    if (x > 0) {
        // 复合语句开始
        System.out.println("x is positive");
        x--;
        System.out.println("Decremented x");
        // 复合语句结束
    }

    3.局部变量作用域:在复合语句内部声明的变量具有局部作用域,只能在复合语句内部访问

public void doSomething() {
    // 复合语句开始
    int x = 10;
    System.out.println(x); // 可以访问x
    // 复合语句结束
    System.out.println(x); // 编译错误,无法访问x
}

复合语句的作用是组织和控制程序的执行流程,使代码更加清晰、结构化。

条件语句

【If语句】

   if条件语句是一个重要的编程语句,用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下另外的语句。

【if的用法】

1.语法一

if(布尔表达式){
    语句序列
}

2.语法二

if(布尔表达式)
    语句;

3.语法三

if(布尔表达式){
   语句序列1;
}else{
   语句序列2;
}

4.语法四

if(表达式1){
    语句序列1;
}else if(表达式2){
    语句序列2;
}else if(表达式3){
    语句序列3;
}
...
else if(表达式m){
    语句序列m;
}

【switch】语句

[语法]:

swith(表达式){
case 常量值1:语句块1;break;
case 常量值2:语句块2;break;
case 常量值3:语句块3;break;
case 常量值4:语句块4;break;
...........................
case 常量值n:语句块n;break;
default:语句块n+1;break;

循环语句

【while语句】

【语法】:先判断在执行语句。

while(条件表达式){
    语句序列
}

计算1-100的和;

public class text1 {

	public static void main(String[] args) {
		int sum=0,i=0;
		while(i<=100) {
			sum=sum+i;
			i++;
		}
		System.out.println(sum);
		
		
	}
}

【do...while语句】

【语法】:先执行再判断。

do{
   语句序列
}while(条件表达式)

创建密码:

import java.util.Scanner;

public class text1 {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
	    String a1;
		String a2;
		do {
			System.out.println("请输入要创建的密码:");
			a1=sc.nextLine();
			System.out.println("请再次确认密码:");
			a2=sc.nextLine();
			if(!a1.equals(a2));
			System.out.println("输入的密码不一致,请再次输入");
		}while(!a1.equals(a2));
		System.out.println("密码创建成功!");
		
		
	}
}

【for循环语句】 

【语法】

for(表达式1:表达式2:表达式3){
   语句序列
}

 foreach语句:

语法:

for(元素类型x;遍历对象obj){
     引用了x的java语句;
}

实列:
 

public class text1 {

	public static void main(String[] args) {
		int a[]= {1,2,6,5,8};
		for(int x:a) {
			System.out.println(x);
		}
	}
}

 循环控制

【break语句】

break的作用:中断循环。

break使用场景:

循环嵌套情况下,break语句将只会使程序流程跳出包含它的最内层的循环结构,即只跳出一层循环。

如果想让break跳出外层循环,Java提供了“标签”的功能,语法如下:

标签名:循环体{

         break标签名;

}

 无标签效果:

可以看出这个break只是跳出了内层循环。 

加标签效果:

 

 这个break是跳出了整个循环体。

 【continue语句】

continue语句是针对break语句的补充。continue不是立即跳出循环体,而是跳过本次循环,回到
循环的条件测试部分,重新开始执行循环。在for循环语句中遇到continue后,首先执行循环的增量部分,然后进行条件测试。在while和do..while循环中,continue语句使控制直接回到条件测试部分。

continue使用场景:

 continue的作用:执行下一次循环。

continue的标签功能,语法:

标签名:循环体{

          continue 标签名;

}

【 实践与练习】

【训练一】划分成绩等级

将一、二年级学生的学生成绩划分等级,等级划分标准如下:
“优秀”,大于等于90分。
“良好”,大于等于80分,小于90分。
“合格”,大于等于60分,小于80分。
“不合格”,小于60分。
使用if...else if语句判断成绩等级并输出与该成绩对应的等级。

import java.util.Scanner;

public class text1 {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int score;
		System.out.println("请输入学生的成绩:");
		score=sc.nextInt();
		if(score>=90) {
			System.out.println("该成绩等级为:优秀");
		}else if(score>=80 && score<90){
			System.out.println("该成绩等级为:良好");
		}else if(score>=60 && score<80) {
			System.out.println("该成绩等级为:合格");
		}else if(score<60) {
			System.out.println("该成绩等级为:不及格");
		}
		}
	}

【训练二】判断月份对应的季节 

使用switch多分支语句判断某个月份属于哪个季节。

import java.util.Scanner;

public class text {

	
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int month;
		System.out.println("请输入月份:");
		month=sc.nextInt();
		switch(month) {
		case 3:
		case 4:
		case 5:System.out.println("春季");break;
		case 6:
		case 7:
		case 8:System.out.println("夏季");break;
		case 9:
		case 10:
		case 11:System.out.println("秋季");break;
		case 12:
		case 1:
		case 2:System.out.println("冬季");break;
		}
		
	}

}


 

【训练三】细胞分裂实验

生物实验室做单细胞细菌繁殖实验,每一代细菌数量都会成倍数增长,一代菌落中只有一个细菌,二代菌落中分裂成两个细菌,三代菌落中分裂成4个细菌,以此类推,请计算第十代菌落中的细菌数量。

public class text {

	
	public static void main(String[] args) {
		int call =1,time=1;
		while(time<10) {
			call=call*2;
			time++;
		}
		System.out.println(call);
		
	}

}


【训练四】斐波那契数列

1、1、2、3、5、8、13、21、34、··…是一组典型的斐波那契数列,前两个数相加等于第三个数。那么请问这组数中的第n个数的值是多少?
 

import java.util.Scanner;

public class text {

	
	public static void main(String[] args) {
		double num1=1;
		double num2=1;
		double n;
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入要查看第n个数的n值:");
		n=sc.nextInt();
		for(int i=2;i<n;i++) {
			num1=num1+num2;
			double temp=num1;
			num1=num2;
			num2=temp;
		}
		System.out.println("第"+n+"个数的值为:"+num2);
	}
}

 【训练五】蜗牛爬井

有一口井,深10米,一只蜗牛从井底向井口爬,白天向上爬2米,晚上向下滑1米,问多少天可以爬到井口?

public class text {

	
	public static void main(String[] args) {
		int depth=0,day=0;
		while(true) {
			depth=depth+2;
			if(depth>=10) {
				break;
			}
			depth=depth-1;
			day++;
		}
		System.out.println("蜗牛第"+day+"天爬到进口慢死了");
	}
	}


【训练六】剧院售票

某剧院发售演出门票,演播厅观众席有4行,每行有10个座位。为了不影响观众视角,在发售门票时,屏蔽掉最左一列和最右一列的座位。请编写程序,结合本节知识点模拟整个售票过程。

public class text1 {

	public static void main(String[] args) {
		System.out.println("剧场可坐信息如下:");
		for(int i=1;i<=4;i++) {
			for(int j=1;j<=10;j++) {
				if(j==1 ||j==10) {
					continue;
				}
					System.out.println("第"+i+"排"+"第"+j+"列"+"可售");
			
			}
		}
	}
	}

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值