1.顺序结构
- Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行
- 顺序结构是最简单的算法结构
- 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构
2.选择结构
if……else语句
package com.xf2021.www;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String data=scanner.nextLine();
if (data.equals("abc")){
System.out.println("you are right!");
} else if(data.equals("123")){
System.out.println("right!");
}else{
System.out.println("No!!!");
}
scanner.close();
}
}
注:这里在一个if……else语句后直接加if……else可达到多重判断(只要有一个判断为true,则跳过其他判断,继续向下执行), data.equals("123") 用来判断字符串是否相等,这里尽量避免使用data==“123”,因为==判断的是内存地址值,要地址相同才能相等
switch语句
switch语句中的变量类型可以是:
- byte,short,int或者char
- 从Java SE 7开始
- switch支持字符串String类型
- 同时case标签必须为字符串常量或字面量
package com.xf2021.www;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入等级:");
String data=scanner.nextLine();
switch (data){
case "A":
System.out.println("优秀");
break;
case "B":
System.out.println("良好");
break;
case "C":
System.out.println("不及格");
break;
default:
System.out.println("未知等级");
}
scanner.close();
}
}
注:case具有穿透性,所以需要在所有case之下加上break;跳出选择,不然会将以下所有情况都输出
3.循环结构
while循环(我能理解为时钟吗?)
//简单的while求和
package com.xf2021.www;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入求和边界:");
int data;
data = Integer.parseInt(scanner.nextLine());
int i=0;
int sum=0;
while (i<data){
i++;
sum=sum+i;
}
System.out.println("求和结果为:"+sum);
scanner.close();
}
}
注:String类型数据转换为int需要用Integer.parseInt()
do...while循环
- 对于while语句而言,如果不满足条件,则不能进入循环,但有时候我们需要即使不满足条件,也至少执行一次
- do...while循环和while循环相似,不同的是,do...while循环至少会执行一次
- While和do...While的区别:
- while先判断后执行,do...while是先执行后判断
- Do...while总是保证循环体至少被执行一次!这是他们的主要差别
- 个人理解:While和do...While分别类似于易语言的 循环判断首()跟判断循环首()
For循环
- for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构
- for循环执行的次数是在执行前就确定的
练习:计算0-100之间奇数跟偶数和
package com.xf2021.www;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入求和边界:");
int data = Integer.parseInt(scanner.nextLine());
int jishusum=0;
int oushusum=0;
for (int i = 0; i <= data; i++) {
if(i%2!=0){
jishusum+=i;
}else{
oushusum+=i;
}
}
System.out.println("奇数和结果为:"+jishusum);
System.out.println("偶数和结果为:"+oushusum);
scanner.close();
}
}
练习:用for循环输出1-1000之间能被5整除的数,并且每行输出三个
package com.xf2021.www;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入边界:");
int data = Integer.parseInt(scanner.nextLine());
for (int i = 0; i <= data; i++) {
if(i%5==0){
System.out.print(i + "t");
}if(i%15==0){
System.out.println();
}
}
scanner.close();
}
}
打印自定义乘法表
package com.xf2021.www;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入边界:");
int data = Integer.parseInt(scanner.nextLine());
for (int i = 1; i < data; i++) {
int result=0;
for (int w = 1; w <= i; w++) {
result=i*w;
System.out.print(""+i+"x"+w+"="+result+"t");
}
System.out.println();
}
scanner.close();
}
}
增强for循环(主要用于遍历数组)
package com.xf2021.www;
public class Demo1 {
public static void main(String[] args) {
int[] sum={10,20,30,40,50};
for(int x:sum){
System.out.println(x);
}
}
}
for(int x:sum) 意思为定义一个整数变量x,将sum整数型数组里的第n项传递给x然后打印出来
4.break与continue
- break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环。不执行循环中剩余的语句。(break语句也在switch语句中使用)
- continue语句用于在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定
5.goto(lable标签)
示例:取1-100内的质数
package com.xf2021.www;
public class Demo1 {
public static void main(String[] args) {
int count = 0;
outer:for (int i = 1; i <100 ; i++) {
for(int j=2;j<i;j++){
if(i%j==0){
continue outer;
}
}
System.out.print(i+"t");
}
}
}
//第一个循环用来循环1-100
//第二个循环用来循环(2,i)的数并判断,只要有数一个取模取到0就跳到外部循环
注: outer:for (int i = 1; i <100 ; i++) 中 outer: 相当于为外部for循环加上了一个标签,通过continue可直接破坏循环结构跳到标签处的外部循环继续运行
(PS:这个取质数的Demo建议背下来)
Comments | NOTHING