Day3 java的基础知识点(三)

目录

      • 1.while循环
          • 1.1先判断,再执行
          • 1.2知识点扩展
          • 1.3对位置循环次数的操作使用while
      • 2.程序的调试
      • 3.do-while
      • 4.while练习题——<100以内偶数和>
      • 5.for循环
      • 6.for循环常见问题
          • 6.1编译错误,变量i没有初始化
          • 6.2编译正确,但是缺少循环条件,造成死循环
          • 6.3编译通过,但是循环变量的值无变化,造成死循环
          • 6.4表达式全省略,无条件判断,循环变量无改变,应在循环体内设法结束循环;否则会造成死循环
      • 7.break语句
      • 8.continue语句
      • 9.对比break和continue
      • 10.循环结构(while、do-while、for)总结
    • ==文章内容扩展学习链接==

1.while循环

while(循环条件)
{
    循环操作
}
1.1先判断,再执行
package demo0206;
import java.util.Scanner;

public class Hello {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		System.out.println("合格了吗?(y/n):");
		Scanner input = new Scanner(System.in);
		String answer = input.next();
		while("n".equals(answer)) { 			//不合格操作
			System.out.println("上午阅读教材!");
			System.out.println("下午敲代码");
			System.out.println("合格了吗?(y/n):");
			//控制台输入,重新给answer赋值
			answer = input.next();
			//回到循环条件部分
		}
		System.out.println("完成任务");
	}
}
1.2知识点扩展
	//给引用类型变量赋值,null代表“空值”,特殊的值
	String answer = null;
	//变量为null值时,调用方法(函数),报空指针异常
	System.out.println(answer.equals("n"));
	//而下面这样就不会
	System.out.println("n".equals(answer));
1.3对位置循环次数的操作使用while

2.程序的调试

package demo0206;

import java.util.Scanner;

public class Hello {

	public static void main(String[] args) {
		//ArithmeticException 计算异常
		//写出来没有错,运行时报异常的,叫做运行时异常
		/*
		 * 1.找到可能出现错误的代码部位
		 * 		(可以通过运行后,编译器提醒,大概确定那一行出错)
		 * 2.在窗口左侧设置断点(双击)
		 * 3.启动调试 右键Debug As-> java application
		 * 	 会出现一个调试视图
		 * 4.按F6进行单步运行
		 * 5.观察程序的执行,变量的变化
		 * 6.在Breakpoint窗口去掉所有断点,右键remove all删除所有断点
		 * 7.右上切换回java视图
		 */
		int i= 3;
		while(true) {
			int x = 5 / i;
			i--;
		}
	}
}

Day3 java的基础知识点(三)_第1张图片

3.do-while

package demo0206;
import java.util.Scanner;

public class Hello {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		String answer = null; //初始值
		do {
			System.out.println("上机编程");
			System.out.println("合格了吗?");
			answer = input.next();
			//while条件中访问循环外的变量
			//在循环内定义的变量是访问不到的
		}while(answer.equals("n"));//如果不合格继续操作
		System.out.prinln("end");
	}
}

4.while练习题——<100以内偶数和>

	int num = 2; //当前数
	int sum = 0; //保存累计总和
		
	while(num <= 100) {
		sum += num; //每次循环累加偶数 2 4 6 8 10 ...
		num += 2;
	}
	System.out.println("结果:" + sum);
	int num = 1;
	int sum = 0;
	while(num <= 100) {
		if(num % 2 == 0) {
			sum += num;
		}
		num++;
	}
	System.out.println("结果 + sum);

5.for循环

for(参数初始化;条件判断;更新循环变量)   //条件判断为true,循环体被执行
{
    循环操作;
}
//参数初始化——可以声明多个同一类型的值并赋值,用“,”隔开
//更新循环变量——可以是用“,”隔开的多个表达式,运算顺序从左到右
/*问题:
 * 循环输入某同学S1结业考试的5门课成绩,并计算平均分
 */
	Scanner input = new Scanner(System.in);
	int sum = 0; //成绩总和
	int score = 0; //每个成绩
	System.out.print("输入姓名");
	String name = input.next();
	//五门成绩,五次循环
	for(int i = 1;i <= 5; i++)
	{
		System.out.println("输入第"+"门成绩:");
		score = input.nextInt();
		sum += score;
	}
	System.out.println(name + "平均分" + (sum / 5));

6.for循环常见问题

6.1编译错误,变量i没有初始化
for(;i < 10;i++)
{
    System.out.println("这是"+i);
}

Day3 java的基础知识点(三)_第2张图片

6.2编译正确,但是缺少循环条件,造成死循环
for(int i = 0;;i++)
{
    System.out.println("这是"+i);
}
6.3编译通过,但是循环变量的值无变化,造成死循环
for(int i = 0;i < 10;)
{
    System.out.println("这是"+i);
}
6.4表达式全省略,无条件判断,循环变量无改变,应在循环体内设法结束循环;否则会造成死循环
for(;;){
    Sysotem.out.println("这是测试");
}

7.break语句

  • 改变程序控制流

    • 用于do-while、while、for中时,可跳出循环而执行循环后面的语句
      Day3 java的基础知识点(三)_第3张图片
package demo0210;
import java.util.Scanner;
/*问题:
 * 循环录入某学生5门课的成绩并计算平均分,
 * 如果某分数录入为负,止录入并提示录入错误
 * 
 * 分析:
 * 循环录入成绩, 判断录入正确性:
 * 录入错误, 使用break语句立刻跳出循环; 
 * 否则, 累加求和
 */
public class Lucky {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Scanner input = new Scanner(System.in);
		int sum = 0;	//成绩总和
		int score = 0;	//每个成绩
		boolean flag = true;	//平均分是否显示的开关,打开的
		System.out.print("输入姓名:");
		String name = input.next();
		//五门成绩,5次循环
		for(int i=1; i <= 5; i++) {
			System.out.print("输入第"+i+"门成绩:");
			score = input.nextInt();
			if(score < 0) {	//输入错误
				System.out.println("成绩录入错误");
				flag = false;	//关闭了平均分显示
				break;
			}
			sum += score;
		}
		
		if(flag) {
			System.out.println(name + "平均分:" + (sum / 5));
		}
	}
}

8.continue语句

  • continue:只能用在循环里
  • continue:跳过循环体中剩余的语句而执行下一次循环
    Day3 java的基础知识点(三)_第4张图片

9.对比break和continue

  • 使用场合
    • break 可用于switch结构和循环结构中
    • continue 只能用于循环结构中
  • **作用(循环结构中) **
    • break语句终止某个循环,程序跳转到循环块外的下一条语句
    • continue 跳出本次循环,进入下一次循环

10.循环结构(while、do-while、for)总结

  • 共同点

    • 需要多次重复执行一个或多个任务的问题考虑使用循环来解决
    • 无论哪一种循环结构,都有4个必不可少的部分:初始部分、循环部分、循环体、迭代部分
  • 区别

    • 语法
      Day3 java的基础知识点(三)_第5张图片

    • 执行循环

      • while循环:先判断,再执行
      • do-while:先执行,再判断
      • for:先判断,再执行

文章内容扩展学习链接

Day1 java的基础知识点(一)
Day2 java的基础知识点(二)
Day4Day5 java的基础知识点(四)
Day6 java的基础知识点(五)
Day7 java的基础知识点(六)

你可能感兴趣的:(java学习笔记)