学习java的第五节课 流程难点串讲

本文详细讲解了Java编程中提高程序可读性的技巧,包括避免死循环和空循环的方法,强调了循环结构的选择与使用。同时,强调了for循环中分号的重要性以及变量的作用域。此外,还通过计算阶乘的例子展示了如何运用循环计算数学问题。

流程难点串讲

1.提高程序可读性

//输入一个整数,如果为1,则直接输出,否则对该数字自减,并输出自减后的结果。
import java.util.*;

public class Text01 {

	public static void main(String[] args) {
		//输入一个数
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个整数:");
		int num = input.nextInt();
		//首先如果输入的是1,则直接输出,注意等于是==
		//如果不是1的话走else,输出自减后的结果
		if(num==1) {
			System.out.println("输出"+num);
		}else {
			--num;
			System.out.println("输出"+--num);
		}
	
	}
}


//首先如果输入的是1,则直接输出,注意等于是== if(num==1) {
System.out.println(“输出”+num);

如果不是1的话走else,输出自减后的结果

else {
–num;
System.out.println("输出"±-num);

在选择结构中只有一句代码的时候可以去掉大括号{},多行代码时,如果省略之后会发生逻辑错误。

if(num==1) 
			System.out.println("输出"+num);

		else 
			--num;
			System.out.println("输出"+--num);
		

如果去掉多行代码的大括号{}则程序会认为else后面只有一句–num,而后面的System.out.println("输出"±-num);会每次都会输出。则如果去掉else的大括号{}程序其实就变成了👇

if(num==1) {
			System.out.println("输出"+num);

		}else{ 
			--num;
			}
			System.out.println("输出"+--num);

尽量不省略if、else、else if中的大括号

​ 1.提高程序可读性

​ 2.避免错误

2.避免死循环

在这里插入图片描述

//死循环
//空循环
public class Test02 {
	public static void main(String[]args){
		int i=1;
		while(i<10){
		System.out.println("输出"+i);
		i++;
	}
	
	}
	
}

死循环

如果忘记写循环变量迭代,就会无休止的输出1造成程序的死循环。

如果发生死循环首先要检查有没有去写循环变量迭代有没有写,有没有写错。

空循环

在java代码中,;代表了一个语句的结束。如果如👇

while(i<10){
		System.out.println("输出"+i);
		i++;
	}

则不会进入后面的循环操作

总结

严格按照语法写代码并检查代码,避免出线以下问题

​ 1.死循环-缺少循环变量迭代或者迭代不正确

​ 2.空循环-循环条件不满足或分号位置不正确

3.选择合适的循环结构

在这里插入图片描述

public static void main(String[] args) {
	int i =1;
	do {
		System.out.println("输出"+i);
		i++;
	}while(i<10);
	}
}

如果输入的是30,此循环就不适合,应该使用while函数,先判断条件再进行循环,do-whlie的特点为不管条件是否满足都会进入一次循环。

4.for循环分号不可省略

​ 1.for循环三个表达式都可以省略,但是分号不可以省略。

​ 2.考虑程序运行结果,省略的表达式需要在其他位置补全。

5.for循环中定义变量循环外不可用

在这里插入图片描述

👆在循环中声明的i在出了循环之后,这个i就失效了。所以此运行结果编译错误。

可以将int i在前面声明

int sum =0;
int i =1;
for(i=1;i<=10;i++){
	sum +=i;

}
System.out.print("i="+1+"sum="+sum);
//正确的代码
6.条件判断结果必须为boolean类型

在这里插入图片描述

条件判断的结果必须是boolean类型,=是赋值,等于的符号是==

7.学习方法

熟记各种结构的语法以及使用场合

分析模仿规范的源代码

学会分析方法

​ 确定使用的语法结构

​ 找关键点:条件、循环变量、循环操作

​ 画流程图

​ 将流程图变为java程序语言

多敲多练,熟能生巧

不怕出错、累计错误、并且记录

8.思考题

在这里插入图片描述

import java.util.*;


public class Test04 {
		//计算阶乘法
	public static void main(String[] args) {
		// 计算n!	1*2*3*4*5....*n
		//输入并且接收数字
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个正整数");
		int n =input.nextInt();
		int sum =0;//记录阶乘之和
		int sum2 =0;//阶乘最终的结果
		
		//循环过程
		for(int i=1;i<=n;i++) {
			sum2*=i;
			sum+= sum2;
		}
		System.out.println(n+"的阶乘是:"+sum2);
		System.out.println("1!+2!+3!+...."+n+"!="+sum);
	}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值