Javase入门

java语言基础

选择结构if

if语句第一种格式

if(布尔表达式){
语句体
}
执行流程:
先判断布尔表达式的真假,真就执行语句体;假就不执行语句体。
流程图如下:
Javase入门_第1张图片

if语句第二种格式

if(布尔表达式1){
语句体1
}else {
语句体2
}
执行流程:
判断布尔表达式的真假
真:执行语句体1
假:执行语句体2
流程图如下:
Javase入门_第2张图片

if语句表达式第三中格式

if(不二表达式1){
语句体1
}else if (布尔表达式2){
语句体2
}
。。。
else (
语句体n+1

执行流程:
判断布尔表达式1的真假
真:执行语句体1
假: 判断布尔表达式2的真假
真:执行语句体2
假:以此类推
。。。
假:执行语句体n+1
流程图如下:
Javase入门_第3张图片

选择结构switch

switch结构的基本语句

switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
。。。
default:
语句体n+1;
break;
}
执行流程:
首先计算表达式的值
然后和case的值 进行依次的比较,一旦有了对象的值,就执行对应的语句,遇到break跳出;
如果都没有与case的值匹配成功,那么就与default匹配执行语句体。
程序流程图如下:
Javase入门_第4张图片

if语句和switch语句使用的选择

if 语句的使用场景:

  • 针对结果是Boolean类型的判断
  • 针对一个范围的判断
  • 针对几个常量值的判断

switch语句的使用场景:

  • 针对几个常量值的判断

常见的错误和陷阱

忘记必要的括号

如果块中只有一条语句,就可以忽略花括号。但是,当需要用花括号将多条语句括在一起时,忘记花括号是一个常见的程序错误。
if (radius>= 0) { area = radius * radius * PI; System.out.println("The area "+"is"+area); }

错误的在if行出现“ ;”

悬空的else 出现的歧异

两个浮点数值的相等测试

浮点数具有有限的计算精度;涉及浮点数的计算可能引入舍人错误。因此,两个浮点数值的相等并不可靠。

例题

Javase入门_第5张图片

import java.util.Scanner;
class Demo3_5{
	/*
	数据:输入一个三位数的整数
	指令:1 获取随机的三位数
		  2	输入一个整数
		  3 拆分随机三位数上各个位置的值 a1 b1 c1
		  4 拆分输入的三位数上各个位置上的值 a2 b2 c2
		  5 拿各个位置上的数进行匹配
		     
	      
	*/
	public static void main(String[] args){
		int comNum=(int)(Math.random()*1000);
		System.out.print(comNum);
		Scanner scanner=new Scanner(System.in);
		System.out.println("输入一个三位整数");
		int usrNum=scanner.nextInt();
		int a1=comNum%10;
			comNum/=10;
		int b1=comNum%10;
			comNum/=10;
		int c1=comNum;
		int a2=usrNum%10;
			usrNum/=10;
		int b2=usrNum%10;
			usrNum/=10;
		int c2=usrNum;
		if(a1==a2&&b1==b2&&c1==c2){
			System.out.print("奖金是10000美元");
		}else if((a1==b2&&b1==c2&&c1==a2)||(a1==c2&&b1==a2&&c1==b2)){
			System.out.print("奖金是3000美元");
		}else if(a1==a2||a1==b2||a1==c2||b1==a2||b1==b2||b1==c2||c1==a2||c1==b2||c1==c2){
			System.out.print("奖金是1000元");
		}else{
			System.out.print("没有中奖");
		}
			
	}
}

Javase入门_第6张图片

import java.util.Scanner;
class Demo3_7{
	/*
	数据:一个圆心的坐标 和半径 和另外一个坐标
	指令: 1 输入圆心的坐标和半径
	      2 输入另外一个坐标
		  3 计算圆心到另外一个坐标的距离
		  4 判断半径与距离
			4.1 半斤》距离 则在园内
			4.2 半径《距离 则在园外
	*/
	public static void main(String[] args){
		Scanner scanner=new Scanner(System.in);
		System.out.print("输入一个圆的圆心和半径:");
		System.out.print("Enter a point with two coordinates:");
		double ox=scanner.nextDouble();
		double oy=scanner.nextDouble();
		double radius=scanner.nextDouble();
		double x=scanner.nextDouble();
		double y=scanner.nextDouble();
		double distances=Math.sqrt(Math.pow(ox-x,2)+Math.pow(oy-y,2));
		if(distances>radius){
			System.out.printf("Point (%f,%f) is not in the circle",x,y);
		}else{
			System.out.printf("point (%f,%f) is in the circle",x,y);
		}
	}
}

Javase入门_第7张图片

import java.util.Scanner;
class Demo3_11{
	/*
	数据:圆心 和两个圆的半径 两个圆心之间的距离
	指令:
	1.输入两个圆的圆心和半径(默认圆2小于圆1)
	2.计算两个圆心之间的距离
	3.判断圆心与半径之间的关系
		3.1 如果距离>r1+r2	圆2在圆1外
		3.2 如果距离<=r1-r2 圆2在圆1内
		3.3 其他 圆2与圆1相交
	*/
	public static void main(String[] args){
		// 1
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter circle1's center and radius:");
		double x1=scanner.nextDouble();
		double y1=scanner.nextDouble();
		double r1=scanner.nextDouble();
		System.out.print("Enter circle1's center and radius:");
		double x2=scanner.nextDouble();
		double y2=scanner.nextDouble();
		double r2=scanner.nextDouble();
		// 2 
		double distance=Math.sqrt(Math.pow(x1-x2,2)+Math.pow(y1-y2,2));
		// 3
		if(distance>r1+r2){
			System.out.println("circle2 is out of circle1");
		}else if(distance<=r1-r2){
			System.out.println("circle2 is in the circle1");
		}else{
			System.out.println("circle2 is overlaps circle1");
		}
	}
}

java语言循环语句结构

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环;
循环四要素:

  • 循环初始化:一条或多条语句,这些语句完成一些初始化操作,让循环开始执行
  • 循环继续条件:控制循环是否继续或结束的条件
  • 循环体:需要被循环执行的代码
  • 循环步长(间距,周期):当前循环和下一次循环之间的差量

for循环语句格式

for循环语句格式:
for(初始化语句;继续条件;步长){
循环体
}
操作流程:
先执行循环语句初始化,判断循环继续条件,
true :继续执行 循环体
false:跳出循环
执行步长
流程图如下:
Javase入门_第8张图片
for 循环语句是从关键字 for 开始的,然后是用一对圆柱体括号括住的循环控制结构体。这个结构体也包括初始操作,循环继续条件和每次代后的操作。控制结构体后紧跟着花括号括起来的循环体。初始操作,循环继续条件和每次指代后的操作都要用分号分隔。

for 循环语句的注意事项

  • 循环继续条件语句的结果是一个boolean类型
  • 循环体语句如果是一条语句,大括号可以省略
  • 有左大括号就没有分号有分号就没有左大

while语句的格式和使用基本规则

while循环语句格式:
while(循环继续条件){
循环体语句
}

循环初始化语句
while(循环继续条件){
循环体语句
步长
}

while语句和for语句的区别

for循环针对一个范围判断进行操作
while循环适合判断次数不明确操作

break语句的使用

使用的场景:

  • 在选择结构switch语句中
  • 在循环语句中
  • 离开使用场景的存在是没有意义的

使用的作用:

  • 跳出单层循环
  • 跳出多层循环:带标签跳出,标签名:循环语句

例题

Javase入门_第9张图片`import java.util.Scanner;
class Demo3_12{
/*
指令:1·遍历输入的所有整数
2·判断num 的正负
2·1 num>0 整数+1 输出
2·2 num<0 负数+1 输出
2·3 num=0 break
3·计算total的值
4·计算平均值
*/
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int positives=0;
int negatives=0;
int sum=0;
System.out.print(“Enter an integer , the input ends if it is o :”);
while (true){
int num=scanner.nextInt();

		if (num>0){
			positives+=1;	
		}else if (num<0){
			negatives+=1;	
		}else {
			break;
		}
		sum=sum+num;
		
			
	}

	System.out.printf("The number of positivers is %d \n ",positives);
	System.out.printf("The number of negatives is %d \n ",negatives);
	double total=(double)(positives+negatives+1);
	System.out.printf("The total is %.1f \n ",total);
	    
	double avg=(double)(sum/total);
	System.out.printf("The average is %.1f \n ",avg);

	



}

}
`
在这里插入图片描述

import java.util.Scanner;
class Demo3_14{
	/*
	指令:1 输入一个整数 num
		  2 判断num^2>12000 
		  3 输出这个数


		  循环 
		  初始值 输入的一个整数
		  可执行变量 true
		  循环语句 2 
		  步长 num++

	*/
	public static void main(String[] args){
		int num=0;
		while (true){
			if (num*num>12000){
				break;
			}
			num++;
		}
		System.out.print(num);
		num=0;
		while (true){
			
			if (num*num*num>12000){
				break;
			}
			num++;
			
		}
		num--;
		System.out.print(num);


	}
}

Javase入门_第10张图片

class Demo3_20{
	/*
	指令:遍历1~1000之间的整数
		  判断是否为完全数
		  输出这些数

		  循环
			
	
	*/
	public static void main(String[] args){
		int num1=0;
		for (int num=1;num<=10000;num++ ){
			for (int i=1;i<=num/2;i++){
				
				if (num%i==0){
					num1+=i;
				}	
			}
			if (num==num1){
				System.out.println(num);
			}
			num1=0;
		}

	}
}

Javase入门_第11张图片

import java.util.Scanner;
class Demo3_22{
	/*
	指令:
		输入一些整数
		判断最大值max
		并记录max出现的次数 count
	
	*/

	public static void main(String[] args){
		int max=0;
		int count=0;
		Scanner scanner=new Scanner(System.in);
		System.out.print("请输入整数");
		while (true){
			int num=scanner.nextInt();
			if (num==0){
				break;
			}
			if (num>max1){
				max=num;
				count=1;
			}else if (max==num){
				count++;
			}
		
		}
		System.out.println("最大的数字是 :"+max);
		System.out.println("出现的次数是:"+count);
			
		



	}
}

你可能感兴趣的:(Javase入门)