顺序结构
package Scanner;import java.util.Scanner;public class Demo05 {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=m+1;//m++sum=sum+x;System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum);}System.out.println(m+"个数的和为"+sum);System.out.println(m+"个数的平均值是"+(sum/m));scanner.close();}
}
if选择结构
package Scanner;import java.util.Scanner;public class Demo04 {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 Scanner;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();//equals:判断字符串是否相等if(s.equals("Hello")){System.out.println("s");}System.out.println("End");scanner.close();}
}
if单选择结构:
package Scanner;import java.util.Scanner;public class IfDemo02 {public static void main(String[] args) {//考试分数大于60分就是及格,小于60分就不及格Scanner scanner=new Scanner(System.in);System.out.println("请输入成绩:");int score=scanner.nextInt();if(score>60){System.out.println("及格");}else{System.out.println("不及格");}scanner.close();}
}
if多选择结构:
package Scanner;import java.util.Scanner;public class IfDemo03 {public static void main(String[] args) {/*if语句至多有1个else语句,else语句在所有else if语句之后。if语句可以有若干个else if语句,它们必须在else语句之前。一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行*/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&&score>=0) {System.out.println("不及格");}else {System.out.println("成绩不合法");}}
}
使用嵌套的if...else语是合法的。也就是说你可以在另一个if或者else if语句中使用if或者else if语句。你可以向if语句一样嵌套else if...else 。
循环结构:
我们大多数情况是会让循环停止下来的,我们需要一个表达式失效的方式来结束循环
while循环:
package Scanner;import java.util.Scanner;public class Demo05 {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=m+1;//m++sum=sum+x;System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum);}System.out.println(m+"个数的和为"+sum);System.out.println(m+"个数的平均值是"+(sum/m));scanner.close();}
}
package struct;public class WhileDemo01 {public static void main(String[] args) {//输出1~100int i=0;while (i<100){i++;System.out.println(i);}}
}
package struct;public class WhileDemo02 {public static void main(String[] args) {//死循环,在正常编程中应该尽量避免死循环,会影响程序性能或者造成程序卡死崩溃while (true){//等待客户端连接//定时检查//......}}
}
package struct;public class WhileDemo03 {public static void main(String[] args) {//计算1+2+3+...+100=?int i=0;int sum=0;while (i<100){i++;sum=sum+i;}System.out.println(sum);}
}
do...while循环:
对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do...while循环和while循环相似,不同的是,do...while至少会执行一次
while和do...while的区别:
while先判断后执行,do...while是先执行后判断
do...while总是抱着循环体会被至少执行一次!这是他们的主要差别
从一加到100代码:
package struct;public class DoWhileDemo01 {public static void main(String[] args) {int i=0;int sum=0;do {i++;sum=sum+i;}while (i<100);System.out.println(sum);}
}
package struct;public class DoWhileDemo02 {public static void main(String[] args) {int a=0;while(a<0){System.out.println(a);a=a+1;}System.out.println("===================");do {System.out.println(a);a=a+1;}while (a<0);}
}
for循环:
for循环语句是支持迭代的一张通用结构,是最有效、最灵活的循环结构。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++){System.out.println(i);}System.out.println("for循环结束!");}
}
最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环变量,也可以是空语句。
然后检查布尔表达式的值,如果为ture,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句
执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。
再次检测布尔表达式,循环执行上面的过程
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;//0ddSum=oddSum+i;}else {//偶数evenSum+=i;}}System.out.println("奇数的和;"+oddSum);System.out.println("偶数的和:"+evenSum);}
}
package struct;public class ForDemo03 {public static void main(String[] args) {//练习:用while或for循环输出1-1000之间能被5整除的数,并且每行输出三个int j=0;for (int i=1;i<=1000;i++) {if (i%5==0) {j++;System.out.print(i+"\t");if (j%3==0){System.out.println();}}}//println输出完会换行//print输出完不会换行}
}
package struct;public class ForDemo04 {public static void main(String[] args) {//打印九九乘法表int j=1;int i=1;int sum=0;for(i=1;i<10;i++) {for (j = 1; j<=i; j++) {//我靠这里好难sum = i * j;System.out.print(j + "*" + i+ "=" + sum+" ");if(i==j) {System.out.println();}}}}
}
输出结果:
package struct;public class Demo05 {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);}}
}
package struct;public class Testdemo01 {public static void main(String[] args) {//打印三角形 5行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 j=1;j<i;j++){System.out.print("*");}System.out.println();}}
}
输出结果:
switch多选择结构
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("良好");break;//可选case 'C':System.out.println("及格");break;//可选case 'D':System.out.println("再接再厉");break;//可选case 'E':System.out.println("挂科");break;//可选default:System.out.println("未知等级");}}
}
每一个对象都有自己的hashCode