Java入门基础3 循环语句 三种结构: 顺序结构     分支结构   循环结构

表达式 (Expression)

语句 :以分号结束

语句块


 

java中程序的三种结构:顺序结构     分支结构   循环结构

if(逻辑表达式,备注,和c不同,一定是逻辑结果){

条件为真时执行

}

else {

条件为假时执行

}

if(true)条件

switch(int类型|string类型| Enum类型)

case 条件1:

case 条件2:

break;

default;

}

注意:回车用%n 不用\n


循环结构:

while (条件){

//在Java中多了一种for的形势 foreach

//for(元素类型 变量名 :容量数组){

//}

}

for(初始化 ;条件;后续动作)

{

}

do{

}while (条件)

continue 和break 都支持带标签的形式

public static void fied () {

int [] array ={1,2,3,4,5,6,7};

for(int i=0;i<array.length

break;

}

}


方法组成:

  1. 限定符:
  2. 返回值类型,如果没有返回值,要明确写void
  3. 方法名称,命名习惯:收个单词全小写,以后的单词首字母大写,多为动词
  4. 参数列表            () | 参数类型 参数名称
  5. 异常声明    throw
  6. ** 方法体{}

public  static int caleSum(int[] array)  thows Exception{

                                 //下划线分别为1——6

}

 

重点:关于方法签名 (Method signature)

方法名称+参数列表

int sum(int a ,int b){}    void sum (int a, int b) {} 一样

int sum (int a,int b ,int c){}不一样

方法名称相同,但参数列表不同

重载 (overload)通常情况下,用不到重载,例外:重载在构造方法中很常见

要和 重写 区分


 

public class cation{
//计算n的位数,n一定为正数	
public static int calcDigitNum (long n) {
int  digitNum=0;
while (n>0)
{
	n=n/10;
	digitNum++;
}
return digitNum;
}

//pubilc stactic int factorial(int n)
public static void main (String[] args)
{
	//long n=Long.parseLong(long 
int m =calcDigitNum(1234);
System.out.printf("%d",m);
}
}

利用简单whlie循环判断位数

public class cation{
//计算n阶乘
public static int calcDigitNum1 (int n) {
if (n==1){
	return 1;
}
else {
	return n*calcDigitNum1(n-1);
}
}
public static long calcDigitNum2 (int n) {
	long fact=1;
for (int i=1;n>=i;i++)
{
	fact =fact*i;
}
return fact;
}
public static void main (String[] args)
{
long m =calcDigitNum1(5);
System.out.printf("%d",m);
long fact =calcDigitNum2(5);
System.out.printf("%d",fact);

}
}

 函数递归思想计算阶乘

当n=1时,n!=1

当n>1时,n!=n*(n-1)!

public class cation{
//计算e=1-1/1!+1/2!-…+1/n!

public static long factorial (int n){
//求阶乘1.递归 2.循环
if (n==1|n==0){
	return 1;
}
else {
	return n*factorial(n-1);
}
}
public static double calcE(int n) {
//加法
double sum =0.0;
int j=1;
for (int i=0;i<n;i++)
{
	sum =j*(sum+1.0/factorial( i)) ;
	j=j*-1;
}
return sum;
}

public static void main (String[] args){
long m=factorial(5);
System.out.printf("%d%n",m);
double sum=calcE(5);
System.out.printf("%f",sum);
}
}

利用1.函数递归 (同上一个代码)   2.循环的方法 计算e=1-1/1!+1/2!-…+1/n!

public class cation{
//反转字符串

public static String reverse (String s){
	int length=s.length();
	String r="";
	for (int i=length-1 ;i>=0;i--)
	{
		char ch =s.charAt(i);
		r=r+ch;
	}
	return r;
}
public static String decToHex(int dec ) {
	//10进制变为16进制
	String hex ="";
	while (dec>=16)
	{
		int remainder =dec%16;
		dec=dec/16;
		if(remainder<10) {
			hex=hex+remainder;
		}
		else {
			char ch=(char )('A'+(remainder-10));
			hex=hex+ch;
		}
		
	}
	return reverse (hex);
}

public static void main (String[] args){
String message ="Hello";
String r=reverse (message);
System.out.printf(r);
//反转为“olleH"
System.out.printf(decToHex(212324));
}
}

 1.反转字符串例子:hello变为olleh  

2.将十进制数字转为16进制

原理:/16,%16

在Java中,递归没有任何特殊性

但是利用了数学归纳法的思想   

核心:要有局部性原则,不要在写递归时尝试展开递归过程

举例:汉诺塔游戏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值