Java尚硅谷基础笔记-day3 流程控制函数

本文深入探讨了Java中的程序流程控制,包括if-else结构、switch-case结构和循环结构的使用方法,以及如何通过break和continue关键字来优化循环。文章还提供了多个实例,帮助读者理解并掌握这些控制结构的应用。

第二章 Java基本语法:变量与运算符

2.1关键字和保留字
2.2标识符
2.3变量

基本数据类型
基本数据类型变量间转换
基本数据类型与String间转换
进制与进制间的转换
2.4 运算符
2.5 程序流程控制

前四节笔记地址:Java尚硅谷基础笔记-day2 变量及运算符

2.5 程序流程控制

在这里插入图片描述
分支结构
在这里插入图片描述
if-else结构
在这里插入图片描述
注意:当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓;当多个条件是“包含”关系时,“小上大下 / 子上父下”
实例1:
在这里插入图片描述
补充知识:键盘输入
实现步骤:1.导包 import java.util.Scanner;
2.scanner的实例化:Scanner scan=new Scanner(System.in);
3.调用scanner类的相关方法,string类型是next(),其余类型为nextXxx(),char没有对应方法
与类型不匹配时会编译报异常

import java.util.Scanner;
class IfTest{
	public static void (main [] args){
	Scanner scan=new Scanner(System.in);
	int score=scan.nextInt();
	if (score==100){
	System.out.println("BMW");
	}else if (score>80){
	System.out.println("ipone");
	}else if(score>60){
	System.out.println("ipad");
	}else {
	System.out.println("none");
	}
}

实例2
以下代码输出结果是?

int x=4;
int y=1;
if(x>2){
	if(y>2)
		System.out.println(x+y);//	未执行
		System.out.println("atgu");	//	执行,相当于if(x>2)的执行语句
}else 
	System.out.println("x="+x);//	未执行
int x=4;
int y=1;
if(x>2)
	if(y>2)
		System.out.println(x+y);//	
		//System.out.println("atgu");	
else //就近原则,为y>2的else
	System.out.println("x="+x);//	执行

补充内容:随机数

//random()0-1随机数
//公式[a,b] (int)(Math.random()*(b-a+1)+a)
int value=(int)(Math.random()*90+10);//10-99随机数

补充内容:汉字的判断

//判断变量isHandsome是都等于“是”,不是“是”的都判断为false
isHandsome.equals("是")

switch-case结构
在这里插入图片描述
注意:
1.break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾
2.default子句是可任选的。同时,位置也是灵活的。当没有匹配的case时,执行default。
3.switch语句中,只能是下面六中数据类型:byte,short,char,int,枚举类型,string
实例1:
对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格” 。

//方法一
int score=78
switch(score/60){
	case 1:
		System.out.println("及格");
		break;
	case 0:
		System.out.println("不及格");
	break;
}
//方法二
int score=78
switch(score/10){
	case 10:
	case 9:
	case 8:
	case 7:
	case 6:
		System.out.println("及格");
		break;
	case 0:
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		System.out.println("不及格");
	break;
}

实例2:编写程序:从键盘上输入2020年的“month”和“day”,要求通过程序输出输入的日期为2020年的第几天。

switch(month){
case 12:
sumDays +=30;
case 11:
sumDays +=31;
case 10:
sumDays +=30;
case 9:
sumDays +=31;
case 8:
sumDays +=31;
case 7:
sumDays +=30;
case 6:
sumDays +=31;
case 5:
sumDays +=30;
case 4:
sumDays +=31;
case 3:
sumDays +=29;
case 2:
sumDays +=31;//一月的31天
case 1:
sumDays +=day;
}

说明:1.凡是可以用switch-case结构的,都可以转换为if-else。反之,不成立。
2.当可以使用switch-case结构,并且其表达式取值较少,选择switch-case。

循环结构
在这里插入图片描述
do-while循环相对其他两个循环来说,至少执行一次循环体。
最简单的无限循环格式:while(true),for(;😉,根据内部条件控制循环的结束。
结束循环方式有两种:一,循环条件部分返回false
二,在循环体内,执行break
实例
输出0-100的质数

方式一:

long start=System.currentTimeMillis();//计算当前时间距离1970-01-01 00:00:00 的毫秒数
for(int i=2;i<=100;i++){
	boolean isFlag=true;
	for(int j=1;j<i;j++){
		if(i%j==0)
		isFlag=false;
	}
	if(isFlag=true){
	System.out.println(i);
	}	
}
long end=System.currentTimeMillis();
System.out.println("所花费的时间"+(end-start));

优化一:break:只对于非质数管用

long start=System.currentTimeMillis();
for(int i=2;i<=100;i++){
	boolean isFlag=true;
	for(int j=1;j<i;j++){
		if(i%j==0)
		isFlag=false;
		break
	}
	if(isFlag=true){
	System.out.println(i);
	}	
}
long end=System.currentTimeMillis();
System.out.println("所花费的时间"+(end-start));

优化二:缩小j的范围,i/2

long start=System.currentTimeMillis();
for(int i=2;i<=100;i++){
	boolean isFlag=true;
	for(int j=1;j<=i/2;j++){
		if(i%j==0)
		isFlag=false;
		break
	}
	if(isFlag=true){
	System.out.println(i);
	}	
}
long end=System.currentTimeMillis();
System.out.println("所花费的时间"+(end-start));

优化三:缩小j的范围,sqrt(i),最好
例如质数97,97/2约等于48,当在2~48范围内时,除数都可以组成一对对的,比如2,48等等,sqrt(i)是最中间的一对,其左侧的数据是可以完全代表那些成对的数据。

long start=System.currentTimeMillis();
for(int i=2;i<=100;i++){
	boolean isFlag=true;
	for(int j=1;j<=Math.sqrt(i);j++){
		if(i%j==0)
		isFlag=false;
		break
	}
	if(isFlag=true){
	System.out.println(i);
	}	
}
long end=System.currentTimeMillis();
System.out.println("所花费的时间"+(end-start));

特殊关键字:break和continue
在这里插入图片描述
方式二:

long start=System.currentTimeMillis();
label:for(int i=2;i<=100;i++){
	boolean isFlag=true;
	for(int j=1;j<=Math.sqrt(i);j++){
		if(i%j==0)
		continue label;
	}
	if(isFlag=true){
	System.out.println(i);
	}	
}
long end=System.currentTimeMillis();
System.out.println("所花费的时间"+(end-start));
### 回答1: 硅谷Java基础笔记是一套系统而全面的Java基础学习资料。这份笔记Java语言的基本概念介绍开始,涵盖了Java的核心知识点,包括变量、数据类型、运算符、流程控制等。接着,笔记详细讲解了面向对象编程的特点和Java中的类、对象、封装、继承、多态等内容。 在这份笔记中,还深入讨论了Java中的常用类库,如String、ArrayList、HashMap等,以及它们的常见用法和实例操作。此外,笔记还介绍了常见的异常处理机制,包括try-catch语句、throw和throws关键字等,帮助学习者理解并掌握Java中的错误和异常处理。 除了基础知识的讲解,硅谷Java基础笔记还提供了大量的例子和练习题,帮助学习者巩固所学内容,并通过实践提高编程能力。这些例子和练习题涵盖了各个知识点和应用场景,从简单到复杂,逐渐深入,非常有助于学习者的理解和应用能力的提升。 总而言之,硅谷Java基础笔记是一份详细、系统、易懂的学习资料,适合初学者入门学习Java编程。无论是对于零基础的学习者还是对于有一定编程经验的人来说,这份笔记都是一份不可多得的宝藏,可以帮助他们夯实Java基础,掌握编程技巧,为进一步扩展知识奠定坚实的基础。 ### 回答2: 硅谷java基础笔记是一份完整而详细的教程,对于初学者来说是一个很好的学习资源。 这份笔记硅谷团队精心编写而成,包含了Java基础的各个方面。首先从Java的历史和应用领域入手,引导读者对Java有一个整体的认识。然后逐步介绍Java的发展环境和使用工具,让读者能够了解如何配置和使用Java开发环境。 接下来,笔记逐个介绍了Java的基本语法、数据类型、运算符、流程控制语句等基础知识。这些内容以简洁明了的方式呈现,附有实例和练习题,让读者可以通过练习巩固所学内容。 除了基础语法,笔记还深入讲解了Java的面向对象编程思想和相关特性,包括类与对象、封装、继承、多态等。这部分内容对于理解Java的核心思想和编程范式非常重要,而且通过实例和案例的讲解,更加直观地展示了面向对象的优势和应用。 此外,笔记还包含了Java的常用类库的介绍,如集合框架、IO流、异常处理等,这些内容对于进行实际开发非常实用。 总之,硅谷java基础笔记内容全面、深入浅出,适合初学者学习和巩固基础知识。通过系统地学习这份笔记,读者可以建立起扎实的Java基础,为后续的学习和实践打下坚实的基础。同时,笔记中的案例和练习题也为读者提供了不少实践机会,帮助读者更好地理解和应用所学知识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值