day4
p31
包机制
- 包相当于文件夹
- 一般使用公司域名倒置作为包名:www.baidu.com com.baidu.www
- import com.kuang.* //导入这个包的所有类
JavaDoc
javadoc 命令是用来生成自己API文档的
java流程控制
- 用户交互Sacnner
java.util.Scanner是java5的新特性,通过Scanner类来获取用户的输入。
基本语法:
Scanners=new Scanner(System.in);
通过Scanner类的next()与nextLine()方法得到输入的字符串,在读取之前我们一般需要使用hasNext()与hasnextline()来判断是否还有输入的数据。
package com.baidu.www.scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner=new Scanner(System.in);
System.out.println("使用next方式接受:");
//判断用户有没有输入字符串
if(scanner.hasNext()){
//使用next方式接受
String str=scanner.next();
System.out.println("输入的内容为:"+str);
}
scanner.close();//凡是使用IO流的类若是不关闭则会一支占用资源。
}
}
package com.baidu.www.scanner;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("使用nextline方法接收");
if(scanner.hasNext()){
//使用nextline方式接受
String str=scanner.nextLine();//程序会等待用户输入完毕
System.out.println("输入的内容为:"+str);
}
scanner.close();
}
}
next()后不能得到带有空格的字符串
nextline()可以获得空白 以enter为结束符
package com.baidu.www.scanner;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//从键盘接受数据
int i = 0;
float f = 0.0f;
System.out.println("请输入整数:");
//如果。。。那么
if (scanner.hasNextInt()) {
i = scanner.nextInt();
System.out.println("整数数据:" + i);
} else {
System.out.println("输入的数据不是整数!");
}
System.out.println("请输入小数:");
//如果。。。那么
if (scanner.hasNextFloat()) {
f = scanner.nextFloat();
System.out.println("小数数据:" + f);
} else {
System.out.println("输入的数据不是小数!");
}
scanner.close();
}
}
package com.baidu.www.scanner;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
//我们可以输入多个数字,并求其总和和平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
Scanner scanner=new Scanner(System.in);
double sum=0;
int m=0;
//通过循环判断是否还有输入,并在里面对每一次进行求和统计
while (scanner.hasNextDouble()){
double x= scanner.nextDouble();
m++;
sum=sum+x;
System.out.println("你输入了第:"+m+"个数据,然后当前结果为"+sum);
}
System.out.println(m+"个数的和为:"+sum);
System.out.println(m+"个数的平均值为:"+(sum/m));
scanner.close();
}
}
- 顺序结构
java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句的执行。
顺序结构是最简单的算法结构
语句和语句之间,框与框之间是按照从上到下的顺序执行的,他是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一个基本算法结构。
package struct;
//顺序结构
public class Demo01 {
public static void main(String[] args) {
System.out.println("hello1");
System.out.println("hello2");
System.out.println("hello3");
System.out.println("hello4");
System.out.println("hello5");
}
}
- 选择结构
if单选择结构
我们很多时候需要判断一个东西是否可行,然后我们才去执行,这样的一个过程在程序中用if语句。
package struct;
import java.util.Scanner;
public class IfDemo01 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输出内容:");
String s=scanner.nextLine();
if (s.equals("hello")){
System.out.println(s);
}
System.out.println("end");
scanner.close();
}
}
if双选择结构
package struct;
import java.util.Scanner;
public class IfDemo01 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输出内容:");
String s=scanner.nextLine();
if (s.equals("hello")){
System.out.println(s);
}
System.out.println("end");
scanner.close();
}
}
嵌套的if结构
我们发现刚才的代码不符合实际情况,真实的情况可能会有ABCD,存在区间多级判断,我们需要一个多选择结构来处理这类问题。
package struct;
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("输入成绩");
int score=scanner.nextInt();
if(score==100){
System.out.println("恭喜满分");
}else if(score<100&&score>=90){
System.out.println("A级");
}
else if(score<90&&score>=80){
System.out.println("B级");
}else if(score<80&&score>=70){
System.out.println("C级");
}else if(score<70&&score>=60){
System.out.println("D级");
}else if(score<60){
System.out.println("成绩不及格");
}
else
{
System.out.println("成绩不合法 ");
}
scanner.close();
}
}
switch的多选择结构
多选择结构还有一个实现方式就是switch case语句
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
package struct;
public class SwitchDemo01 {
public static void main(String[] args) {
//case 穿透 //switch 匹配一个具体值
char grade = 'c';
switch (grade){
case'A':
System.out.println("优秀");
break;
case'B':
System.out.println("良好");
case'C':
System.out.println("及格");
case'D':
System.out.println("再接再厉");
case'E':
System.out.println("挂科");
default:
System.out.println("未知等级");
}
}
}
package struct;
public class SwitchDemo02 {
public static void main(String[] args) {
String name="狂神";
//JDK7的新特性,表达式结果可以是字符串!!!
//字符的本质是数字
//反编译 java---class(字节码文件)(ieda)
switch(name){
case"秦将":
System.out.println("秦将");
break;
case"狂神":
System.out.println("狂神");
default:
System.out.println("啥");
}
}
}
- 循环结构
while循环 :
只要布尔表达式为true,循环就会一直执行下去
大多数情况下,我们需要一个让表达式失效的方式来结束循环
避免死循环的现象
package struct;
public class WhileDemo01 {
public static void main(String[] args) {
//输出1-100
int i = 0;
while (i<100){
i++;
System.out.println(i);
}
}
}
package struct;
public class WhileDemo03 {
public static void main(String[] args) {
//计算1+2+3+4+.....+100
//高斯的故事
int i= 0;
int sum= 0;
while (i<=100){
sum=sum+i;
}
System.out.println(sum);
}
}
do-while 循环
对于whlie语句而言,如果不满足条件,则不能进入循环,但有时候我们需要即使不满足条件也至少执行一次,
do-while循环和while循环不一样的地方在与,dowhile至少会执行一次。while先判断后执行。dowhile是先执行后判断。
package struct;
public class DoWhileDemo01 {
public static void main(String[] args) {
int i=0;
int sum=0;
do {
sum=sum+i;
i++;
}while(i<=100);
System.out.println(sum);
}
}
for循环
1.for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构
2.for循环执行的次数是在执行前酒确定的,
package struct;
public class ForDemo01 {
public static void main(String[] args) {
int a=1;//初始化条件
while (a<=100){//条件判断
System.out.println(a);//循环体
a+=2;//迭代
}
System.out.println("while循环结束");
for(int i=1;i<=100;i++){//100.for快捷键
System.out.println(i);
}
System.out.println("for循环结束");
/*
关于for循环得几点说明
可以声明一种类型,但可以初始化一个或者多个循环控制变量,也可以是空语句,
然后检测布尔表达式的值,。。。
*/
}
}
package struct;
public class ForDemo02 {
public static void main(String[] args) {
//0-100之间奇数偶数的和
int oddsum=0;
int evensum=0;
for (int i = 0; i < 100; i++) {
if(i%2!=0){
oddsum+=i;}
else {
evensum+=i;
}
}
System.out.println("奇数的和为:"+oddsum);
System.out.println("偶数的和为:"+evensum);
}
}
package struct;
public class ForDemo03 {
public static void main(String[] args) {
//循环输出1000之内能被5整除的数,并且每行输出3个
for (int i = 0; i < 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if(i%(5*3)==0){
System.out.println();
//System.out.print("/n");
}
}
//println 输出完会换行
//print 输出不会换行
}
}
package struct;
public class ForDemo04 {
//打印九九乘法表
public static void main(String[] args) {
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {
System.out.print( j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();}
}
}
在java5中引入了一种主要用于数组的增强型for循环
主要用于数组集合的增强for循环
package struct;
//增强for循环 遍历数组的元素
public class ForDemo05 {
public static void main(String[] args) {
int[] numbers={10,20,30,40,50,};
for(int i=0;i<5;i++){
System.out.println(numbers[i]);
}
System.out.println("====================");
for (int x:numbers){
System.out.println(x);
}
}
}
- break&continue
- 练习