通过函数访问到Scanner.java (xxx.java)
通过左侧Structure 查看方法列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 package scanner;import java.util.Scanner;public class class5 { 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(); System.out.println("你输入的x为:" +x); m = m +1 ; sum = sum + x; System.out.println("你输入了第" +m+"个数据," +"当前结果为:" +sum); } System.out.println("输入数字的和为" +sum); System.out.println("一共输入了" +m+"个数字" ); System.out.println(m+"个数字的平均值为" +(sum/m)); scanner.close(); } }
顺序结构
JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
顺序结构是最简单那的算法结构
语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一共算法都离不开的一种基本算法结构。
if 单选择结构 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 package if233; import java.util.Scanner; //if 单选择结构,表达式成立为true则输出再end public class class1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入内容:"); String s = scanner.nextLine(); //s.equals:判断字符串是否相等 if (s.equals("Hello"));{//判断s和Hello这俩字符串是否相等捏 System.out.println(s); } //不成立则直接End然后结束 System.out.println("End"); scanner.close(); } }
if 双选择结构
if多选择结构 语法:
1 2 3 4 5 6 7 8 9 if (布尔表达式 1 ){ }else if (布尔表达式 2 ){ }else if (布尔表达式 3 ){ }eles{ }
//我日昨天的笔记没保存,呜呜呜呜呜呜呜呜呜
例1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package if233;import java.util.Scanner;public class class2 { public static void main (String[] args) { Scanner scanner = new Scanner (System.in); System.out.println("请输入成绩:" ); scanner.nextInt(); int score = scanner.nextInt(); if (score>60 ) { System.out.println("及格" ); }else { System.out.println("不及格" ); } } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 package if233;import java.util.Scanner;public class class3 { 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>=90 && score<100 ){ System.out.println("优秀" ); }else if (score>=80 && score<90 ){ System.out.println("良好" ); }else if (score>=70 && score<80 ){ System.out.println("不戳" ); }else if (score>=60 && score<=70 ) { System.out.println("海星" ); }else if (score>=100 ) { System.out.println("开挂狗给爷爬" ); }else { System.out.println("菜逼" ); } } }
例3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package if233;import java.util.Scanner;public class class4 { public static void main (String[] args) { Scanner scanner = new Scanner (System.in); System.out.println("请输入成绩:" ); scanner.nextInt(); int score = scanner.nextInt(); if (score>60 ) { System.out.println("及格" ); }else { System.out.println("不及格" ); } } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 package if233;import java.util.Scanner;public class class5 { public static void main (String[] args) { char grade = 'C' ; switch (grade){ case 'A' : System.out.println("优秀" ); break ; case 'B' : System.out.println("良好" ); break ; case 'C' : System.out.println("海星" ); break ; case 'D' : System.out.println("森么彩笔?" ); break ; default : System.out.println("请不要搞事嗷!" ); break ; } } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 package if233;public class class6 { public static void main (String[] args) { String name = "牛逼" ; switch (name){ case "牛逼" : System.out.println("卧槽果然牛逼!" ); break ; case "笑死" : System.out.println("笑死我了什么垃圾" ); break ; default : System.out.println("呵呵给爷爬!" ); } } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 package if233;public class DoWhile1 { public static void main (String[] args) { int i = 0 ; int sum = 0 ; do { sum = sum + i; i ++; }while (i<100 ); System.out.println(sum); } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package if233;public class DoWhile2 { public static void main (String[] args) { int a = 0 ; while (a<0 ){ System.out.println(a); a++; } System.out.println("----------------------" ); do { System.out.println(a); a++; }while (a<0 ); } }
Do while 如上
while 循环 和 for 的对比 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 package if233;public class For1 { public static void main (String[] args) { int a = 1 ; while (a<=100 ){ System.out.println(a); a+=2 ; } System.out.println("循环结束" ); for (int i=1 ;i<=100 ;i++){ } System.out.println("for循环结束" ); } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package if233;public class For2 { public static void main (String[] args) { 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); } } }
例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package if233;public class For3 { public static void main (String[] args) { for (int i = 0 ; i <= 1000 ; i++) { if (i%5 ==0 ){ System.out.print(i +"\t" ); } if (i%(5 *3 )==0 ){ System.out.println();} } } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 package if233;public class for7 { 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]); for (int x:numbers){ System.out.println(x); } } }
//上例为一个数组的测试
break continue //用来终止滴捏
break在任何循环语句的主体部分,均可用Break控制循环的流程,break用于强行退出循环,不自行循环中小恒徐的语句。(break语句也在switch语句中使用)
continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
关于goto关键字 //这是个锚,让你循环停的
goto 关键字很早就mao在小恒徐设计语言中出现,尽管ogot仍是java的一个保留字,但未在语言中得到正是使用;Java没有goto.然而,在Break和continue这两个关键字的身上,我们仍能看出一些goto的影子—带标签的break和continue。
“标签”是指后面跟一个冒号的表示符,例如:label:
对Java来说唯一用到标签的敌方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只终端当前循环,但弱随同标签使用,它们就会中断到存在标签的地方。
实例 打印三角形 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package if233;public class Lx1 { public static void main (String[] args) { for (int i = 1 ; i <= 5 ; i++) { for (int j = 5 ; j >= i; j--) { System.out.print(" " ); } for (int j = 1 ; j <= i; j++) { System.out.print("*" ); for (int k = 0 ; k < i ; k++) { System.out.print("*" ); } } System.out.println(" " ); } } }
Debug 程序的断点 de虫虫~~~~虫虫!!!!!!!!~~~~~~~~~~
方法
System.out.println(),那么它是什么呢?
System是一个类,out是输出对象,println是一个方法
意://调用系统内输出对象,out,里的println方法
命名规则:驼峰原则
Java方法是语句的集合,它们在一起执行一个功能。
方法是解决一类问题的步骤的有序组合
方法包含于类或对象中
方法在程序中被创建,在其他地方被引用
设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。
方法的定义
1 2 3 4 5 6 修饰符 返回值类型 方法名(参数类型 参数名){ ... 方法体 ... return 返回值; }
形式参数,用来定义作用 实际参数,用来调用传递给他的参数 值传递
值传递:是指在调用函数时,将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,就不会影响到实际参数
引用传递
引用传递是对于引用数据类型而言,例如对于User类姓名的修改,会改变对象的name。
注意点,引用类型中的String的值是放在常量池中,我们改变副本的值不会影响到原来的值。
例如在change放发中改变了副本的值,但是原来的str字符串不会改变。
方法的重装
个人理解:相当于重新载入了一个同名的,不同的方法。
命令行传参 程序运行的时候,用命令行传递给程序信息
注意点:1,路径找对,找到包的路径从包外面运行
注意点:2,实际上是通过定义命令行的参数运行程序
可变参数
JKD 1.5 开始,Java支持传递同类型的可变参数给一个方法。
在方法声明中,在指定参数类型后加一个省略号(…)。
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package Fangfa;public class Demo04 { public static void main (String[] args) { } public static void printMax (double ... numbers) { if (numbers.length == 0 ){ System.out.println("23333" ); return ; } } }
递归
A方法调用A方法!自己调用自己
利用递归可以用简单的程序解决一些复杂的问题。它通常把一个大型复杂的问题层层华为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出接替过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对线的无限集合。
递归结构包括两个部分:
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
递归体:什么时候需要调用自身方法。
边界条件 前阶段:
返回阶段 n*(n-1)
(递归非常的耗内存)存在大量的函数调用捏
栈机制