目录
- 用户交互,接收键盘输入
- 流程控制语句
顺序结构
选择结构
循环结构 - 方法
1、用户交互–获取键盘输入
1.1 概述
在运行java程序的时候,我们需要在运行的时候传递进去一些参数,java就提供了一个叫做类的东西,我们利用其中的Scanner这个类就可以很方便获取键盘输入的参数;
类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。举一个例子说明下类,比如Person(人)就是一个类,那么具体的某个人“张三”就是“人类”这个类的对象,而“姓名、身高、体重”等信息就是对象的属性,人的动作比如“吃饭、穿衣”等就是对象的方法。
1.1.1 JDK1.5以后的版本提供了Scanner类,用来获取键盘输入;
1.1.2 Scanner类是 一个文本扫描器,可以从文件、输入流、字符串中解析出基本类型值、字符串值;
1.1.3 Scanner类提供了多个不同的构造器,可接受文件,输入流,字符串作为数据源,用于从文件、输入流、字符串中解析数据;
1.1.4 Scanner类提供的方法:
- hasNextXX():是否还有下一项;
- nextXX():获取下一项;
- hasNextLine():是否有下一行;
- nextLine():获取下一行;
- …
1.1.5 代码框架
//创建一个Scanner对象
Scanner sd = new Scannner(System.in);
//使用Scanner对象接收键盘输入
sd.next()
sd.nextInt()
...
//关闭Scanner
sd.close();
2、流程控制语句
2.1 什么是流程控制语句
简而言之,流程控制语句,就是可以控制程序执行的流程。
2.2 流程控制语句的分类
2.2.1 顺序结构
Java顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。总的来说:写在前面的先执行,写在后面的后执行。
package com.sd.day2;
//顺序结构
public class Demo03 {
public static void main(String[] args) {
//程序不被干扰情况下,就是从上到下的执行
System.out.println("Helloworld1");
System.out.println("Helloworld2");
System.out.println("Helloworld3");
System.out.println("Helloworld4");
System.out.println("Helloworld5");
}
}
2.2.2 选择结构
单选,多选
- if语句
1.1. if单选择结构
- 格式
if(布尔表达式){
执行语句}
- 流程图
- 实例
if(i >= 30){
System.out.println(i);
}
1.2. if多选择结构
- 格式
if(布尔表达式){
//如果条件成立执行这里的代码
}else if(布尔表达式){
//如果条件成立执行这里的代码
}
else{
//如果条件不成立执行这里的代码
}
- 流程图
- 实例
Scanner sd = new Scanner(System.in);
System.out.print("请输入成绩:");
int score = sd.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 >= 0 && score < 60){
System.out.println("不合格!");
}else{
System.out.println("输入成绩错误!");
}
sd.close();
2 switch语句
- 格式
switch (表达式) {
case 常量表达式或枚举常量:
语句;
break;
case 常量表达式或枚举常量:
语句;
break;
......
default: 语句;
break;
}
- 流程图
- 实例
//根据值匹配
//不写break就会出现case穿透现象
switch(str){
case "A":
System.out.println("A");
break;
case "B":
System.out.println("B");
break;
case "C":
System.out.println("C");
break;
case "D":
System.out.println("D");
break;
default:
System.out.println("Other");
- if语句与switch语句的区别
if…else顺序判断条件分支,遇到表达式值为真时,执行代码,而switch…case生成一个跳转表来指示实际的case分支的地址,跳转表的索引号与switch变量的值相等,通过对应索引号的表项从而到达定位分支的目的。
2.2.3 循环结构
程序中若出现大量相同的代码,循环是首选的改进方式,目的:实现代码的复用
- 三种Java中的循环结构
- for循环
- while循环
- do-while循环
-
for循环
确定循环次数。先判断,再循环。常用嵌套。
- 格式
for(参数初始化 ;循环的条件 ;循环变量的叠加 ){
循环操作;
}
- 运行顺序
(1)执行初始化表达式(只执行一次),通常是定义循环变量语句
(2)判断循环条件,为真往下执行,为假结束循环
(3)执行循环体语句
(4)执行循环变量控制语句,一般是循环变量的自增或自减(++,–)
(5)回到第(2)步,重复这个过程,直到为假时结束循环
- 实例
public static void main(String[] args) {
//计算出0-100之间的奇数和偶数和
int evenSum = 0;
int oddSum = 0;
//1. 遍历1-100
//2.判断是奇数还是偶数
//3.奇数和奇数相加,偶数和偶数相加
for(int i = 1; i <= 100; i++)
{
if(i%2 == 0) {
evenSum = evenSum + i; //evenSum += i;
}else{
oddSum = oddSum + i;
}
}
System.out.println("奇数的和:"+oddSum);
System.out.println("偶数的和:"+evenSum);
}
-
do-while循环
不确定循环次数,但至少要循环一次。先循环,在判断。最后的分号不可省。
- 格式
do{
循环操作
}while(循环条件);
-
特点
do-while的循环体至少会被执行一次
-
实例
public static void main(String[] args) {
int a = 0;
do{
System.out.println(a);
a++;
}while(a < 0);
}
-
while循环
不知道循环次数。先判断,再循环。常用死循环。用死循环时就要判断什么时候手动让他停止,而这个时候就常会定义一个Boolean类型的变量,让他初始值为true,到循环该结束时,让他的值为false。
- 格式
while(循环条件){
循环操作;
}
- 实例
public static void main(String[] args) {
int i = 1;
while(i < 100){
System.out.println("HelloWorld!"+i);
i++;
}
}
-
while循环和for循环的区别
循环变量的作用域不同: (1).for循环中循环变量的作用域一般情况下是for后面的{} (2).while循环中变量是定义在while之上的,所以其作用的范围更大
2.2.4 在循环中常会用到的还有三种跳出循环的语句
-
break:结束本次循环,继续执行循环后面的语句。跳到外层循环。
-
continue:跳过本次循环,剩余的语句继续,继续执行下一次。
注意:用在while循环里容易出现死循环。要将更新变量语句i++放在continue上面。
-
return:直接结束当前main方法,遇到return后,方法中的所有代码将不再执行。
注意:程序中要减少return的使用频率。一旦使用return,整个main方法结束。
3、方法
3.1 概述
在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法。
在java中,方法就是用来完成解决某件事情或实现某个功能的办法。
方法实现的过程中,会包含很多条语句用于完成某些有意义的功能——通常是处理文本,控制输入或计算数值。
我们可以通过在程序代码中引用方法名称和所需的参数,实现在该程序中执行(或称调用)该方法。
3.2格式
修饰符 返回值类型 方法名(参数,参数,....){
方法体;
return 返回值;
}
对于上面的语法格式中说明如下:
-
修饰符:方法的修饰符比较多,有对访问权限进行限定的,有静态修饰符static,公有访问修饰符public,私有访问修饰符private等;
-
返回值类型:用于限定方法返回值的数据类型;
-
参数类型:用于限定调用方法时传入参数的数据类型;
-
参数名:是一个变量,用于接收调用方法时传入的数据;
-
return关键字:用于结束方法以及返回方法指定类型的值;
-
返回值:被return语句返回的值,该值会返回给调用者;
注:(1).如果方法不需要接收任何参数,则参数列表为空,即()内不写任何内容。 (2).方法的返回值必须为方法声明的返回值类型,如果方法中没有返回值,返回值类型要声明为void,此时,方法中return语句可以省略。
3.3实例
本例为:打印一个三角。
- 先建立一个方法;
//打印三角形
public void printSJ(int n){
for (int i = 1; i <= n; i++) {
//第一个空白倒三角
for (int j = n; j >= i; j--) {
System.out.print(" ");
}
//第二个正三角
for (int j = 1; j <= i ; j++) {
System.out.print("*");
}
//第三个正三角
for (int j = 1; j < i ; j++) {
System.out.print("*");
}
System.out.println(); //换行
}
}
- 建立一个测试程序,调用方法;
public class test1 {
public static void main(String[] args) {
Sud s = new Sud();
s.printSJ(5);
}
}
- 结果显示调用成功;
注:其他相关内容以后再补充。