流程控制语句:

顺序结构  程序从上往下执行
选择(判断)结构 有选择的执行
 if条件
 switch语句
循环结构 重复执行某段代码块多次

有三种循环
for:
for(初始化表达式;条件表达式;增量表达式) {
循环体;
}
while:
while(条件表达式) {
循环体;
}
升级版:
初始化表达式;
while(条件表达式) {
循环体;
增量表达式;
}
do...while:
do {
循环体;
}while(条件表达式);
升级

初始化表达式;
do {
循环体;
增量表达式;
}while(条件表达式);
区别:
for,while循环都是先执行判断,如果判断为true,再执行循环体。
do...while是先执行循环体,再判断,最后如果为true,会继续执行循环体。至少执行一次循环体。
我们到底用谁呢?
一般情况下,常用for和while。
如果是一个范围,用for居多。
如果仅仅只是一个判断,用while循环。

如果增量在变化后,在外面不再被使用,就使用for循环,效率高一些。
 for语句 当明确了范围时,用for循环,并且定义的变量不在循环外参与运算
 while语句 只能做出判断,在什么时候结束循环时,可以用while循环语句
 do...while语句


附加知识:

键盘录入的使用步骤:

导包:
 import java.util.Scanner;
 创建对象
 Scanner sc=new Scanner(System.in);

 int num=sc.nextInt();



案例:

/*
	用while循环求1-100之间的奇数和

	分析:
		第一步:定义一个求奇数和的变量
		第二部:初始化变量,
		第三部:while循环判断
		第四步:
*/

class GetSum2 
{
	public static void main(String[] args) 
	{
		int i=1,sum=0;
		while(i<=100){
			if(i%2!=0){
				sum+=i;
			}
			i++;
		}
		
		System.out.println("1-100的奇数和为:"+sum);
	}
}

求阶乘:

import java.util.Scanner;
class JieCheng 
{
	public static void main(String[] args) 
	{
		int a=getSc();
		getSum(a);
	}
	public static int getSc(){
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一个整数:");
		int a=sc.nextInt();
		return a;
	}
	public static void getSum(int a){
		int sum=1;
		for(int i=2;i<=a;i++){
			sum*=i;
		}
		System.out.println(a+"的阶乘是:"+sum);
	}
}

求100-1000之间的水仙花数


class ShuiXian{
	public static void main(String[] args){
		for(int i=100;i<1000;i++){
			int g=i%10;
			int s=i/10%10;
			int b=i/100%10;
			if(g*g*g+s*s*s+b*b*b==i){
				System.out.println(i);
			}
		}
	}
}
/*
	我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.01米。
	请问,我折叠多少次,可以折成珠穆朗玛峰的高度。
*/
class GetMountHeight{
	public static void main(String[] args){
		float h=0.01f;
		int count=1;
		int ct=2;
		while(ct*h<8848){
			//System.out.println(count);
			ct*=2;
			count++;
		}
		System.out.println("需要叠加"+count+"次,可以达到珠穆朗玛峰的高度!");
		getHeight();
	}
	public static void getHeight(){
		int count=0;
		for(float h=0.01f;h<=8848;h*=2){
			count++;
		}
		System.out.println("需要叠加"+count+"次,可以达到珠穆朗玛峰的高度!");
	}
}
/*
	153=1^3+5^3+3^3

	先定义三个变量;
	int a,b,c;
	定义for循环求出100-999之间的数。
	for(int i=100;i<=999;i++)
	分解这个数字,求出百,十,个,位数字
	a=i/100%10;
	b=i/10%10;
	c=i%10;
*/

class GetNumPrint 
{
	public static void main(String[] args) 
	{
		int num=0;
		for(int i=10000;i<100000;i++){
			int ge=i%10;
			int shi=i/10%10;
			int bai=i/100%10;
			int qian=i/1000%10;
			int wan=i/10000%10;

			if(ge==wan&&shi==qian&&ge+shi+qian+wan==bai){
				System.out.println(i);
				num++;
			}
		}
		System.out.println("满足条件的数共有:"+num);
	}
}

函数:

定义:完成特定功能的代码块

格式:

修饰符 返回值类型 函数名(数据类型 形式参数1,数据类型 形式参数2,...) {
函数体;
return 返回值;
}


修饰符:public static
返回值类型:是功能的结果值的数据类型。如果没有结果,这里是void。
函数名:为了方便函数的调用,我们给其起了一个名字。
参数:
实际参数 实际参与运算的值
形式参数 用于接收实际参数的变量
函数体:就是完成功能的代码块。
return 返回值:返回值就是功能的结果,由return把结果返回给调用者。
      哪里调用,返回到哪里。

函数的特点:

只有被调用才执行、函数之间是平级关系,不要在一个函数中定义一个函数、提高代码复用性
写函数的两个明确:

返回值类型、参数列表(类型及个数)

函数的调用

void类型:只能单独调用

非void型:单独调用无意义、可以输出调用、可以赋值调用(常用方式)

函数重载

函数名相同,参数列表不同(个数不同,对应的类型不同)

跟返回值无关