Java入门之顺序、选择、循环结构
顺序结构:
package com.LynnStudy.scanner;
import java.util.Scanner;
/**
* @Author hql
* @Create 2022-03-28-15:34
* 我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
*/
public class Demo04 {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
//和
double sum = 0;
//记录输入了多少个数字
int m = 0;
System.out.println("请输入数字:");
//通过循环判断是否还有输入,并在里面对每一次进行求和 和 统计
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
m = m + 1;
sum = sum + x;
System.out.println("你输入了第"+m+"个数据,当前的结构和为:sum="+sum);
}
System.out.println(m+"个数的和为:"+sum);
System.out.println(m+"个数的平均数为:"+(sum/m));
scanner.close();
}
}
选择结构:
if选择结构:
package com.LynnStudy.structure;
import java.util.Scanner;
/**
* @Author hql
* @Create 2022-03-29-11:13
*
* if单选择结构语法:
* if(布尔表达式){
* //如果布尔表达式为true将执行的语句
* }
*/
public class If_Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String s = scanner.nextLine();//nextLine可接收中文
//equals:用来字符串判断是否相等;s.equals("Hello"):判断s是否等于Hello
if (s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
scanner.close();
}
}
package com.LynnStudy.structure;
import java.util.Scanner;
/**
* @Author hql
* @Create 2022-03-29-11:27
* if双选择结构 语法:
* if(布尔表达式){
* //如果布尔表达式的值为true,就执行
* }else{
* //如果布尔表达式的值为false,就执行
* }
*/
//考试分数大于60就是及格,小于60就是不及格
public class If_Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的成绩:");
int score = scanner.nextInt();
if (score>=60){
System.out.println("您的成绩是:"+score+"分,恭喜你,及格了");
}else{
System.out.println("您的成绩是:"+score+"分,很遗憾,您未及格");
}
scanner.close();
}
}
package com.LynnStudy.structure;
import java.util.Scanner;
/**
* @Author hql
* @Create 2022-03-29-11:39
*/
/*
if 多选择结构 语法:
if(布尔表达式 1){
//如果布尔表达式 1的值为true,则执行这里代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true,则执行这里代码
}else if(布尔表达式 3){
//如果布尔表达式 3的值为true,则执行这里代码
}else{
//如果以上布尔表达式都不为true,则执行这里代码
}
*/
public class If_Demo03 {
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 && score>=0){
System.out.println("不及格");
}else {
System.out.println("您输入的成绩不合法");
}
scanner.close();
}
}
package com.LynnStudy.structure;
/**
* @Author hql
* @Create 2022-03-29-11:57
* 思想 提高程序的效率
*/
/*
嵌套的if结构 语法:
if(布尔表达式 1){
//如果布尔表达式 1的值为true,则执行代码
if(布尔表达式 2){
//如果布尔表达式 2的值为true,则执行代码
}
}
二分查找法:判断用户输入的数是多少,不用比较100次,用if嵌套来比较快多了
*/
public class If_Demo04 {
public static void main(String[] args) {
}
}
Switch:
上面就是穿透现象:如果case ‘B’ 中没写break,它就会把case ‘B’ 下面的也输出出来
package com.LynnStudy.structure;
/**
* @Author hql
* @Create 2022-03-29-12:17
*/
/*
Switch多选择结构 语法 :
switch(expression){
case value:
//语句
break;//可选(如果不写break,就会把后面的都输出来)
case value:
//语句
break;//可选
//你可以有任意数量的case语句
default ://可选(意思是 不写default也能跑)
//语句
}
//如果都不满足上面的case,就走default
//case 穿透 穿透现象
//switch 匹配一个具体的值
*/
public class Switch_Demo01 {
public static void main(String[] args) {
char grade = 'A';
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("未知等级");
}
}
}
package com.LynnStudy.structure;
/**
* @Author hql
* @Create 2022-03-29-12:38
*/
/*
在JDK1.7后,switch支持变量String类型的匹配了(实际是通过哈希值来比较的)
java--class(字节码)
反编译:就是通过一些反编译工具(如 idea)将字节码文件反编译为java文件;
每一个对象都有自己的哈希code,通过一些算法实现的
*/
public class Switch_Demo02 {
public static void main(String[] args) {
String name = "李华";
switch (name){
case "小明":
System.out.println("小明");
break;
case "李华":
System.out.println("李华");
break;
default:
System.out.println("结束");
}
}
}
循环结构:
while循环
package com.LynnStudy.structure;
/**
* @Author hql
* @Create 2022-03-29-12:54
*/
/*
while循环结构 语法:
while(布尔表达式){
//循环内容
}
*/
public class While_Demo01 {
public static void main(String[] args) {
//输出1`100
int i = 0;
while(i<100){
i++;//i++意思是i=i+1
System.out.println(i);
}
}
}
- ctrl+shift+F10:快速运行本程序
package com.LynnStudy.structure;
/**
* @Author hql
* @Create 2022-04-03-13:25
*/
public class While_Demo02 {
public static void main(String[] args) {
//计算1加到100 结果是5050
int i = 0;
int sum = 0;
while (i<=100){
sum =sum + i;
i++;
}
System.out.println(sum);
}
}
do…While循环
package com.LynnStudy.structure;
/**
* @Author hql
* @Create 2022-04-03-13:29
*/
/*
do....While循环 语法:
do{
//代码语句
}while(布尔表达式);
*/
public class DoWhile_Demo01 {
public static void main(String[] args) {
//计算1加到100 结果是5050
int i = 0;
int sum = 0;
do {
sum =sum+i;
i++;
}while (i<=100);
System.out.println(sum);
}
}
package com.LynnStudy.structure;
/**
* @Author hql
* @Create 2022-04-03-13:35
*/
public class DoWhile_Demo02 {
public static void main(String[] args) {
//while 和 do while 的区别
int a = 0;
while (a<0){
System.out.println(a);
a++;
}
System.out.println("==============================");
do {
System.out.println(a);
a++;
}while (a<0);
}
}
For循环
package com.LynnStudy.structure;
/**
* @Author hql
* @Create 2022-04-03-13:39
*/
/*
For循环 语法:
for(初始化;布尔表达式;迭代){
//代码语句
}
*/
public class For_Demo01 {
public static void main(String[] args) {
int a = 1;//初试条件
while (a<=100){//条件判断
System.out.println(a);//循环体
a=a+2;//迭代 a=a+2
}
System.out.println("while循环结束");
System.out.println("==========================");
//初始化;条件判断;迭代
for (int i=1;i<=100;i++){
System.out.println(i);
}
System.out.println("for循环结束");
}
}
package com.LynnStudy.structure;
/**
* @Author hql
* @Create 2022-04-03-13:54
*/
//for循环练习
public class For_Demo02 {
public static void main(String[] args) {
//练习1:计算0到100之间的奇数和 、偶数和
int oddSum = 0;//奇数和
int evenSum = 0;//偶数和
for (int i = 0; i <=100; i++) {
if (i%2!=0){//模运算 判断是奇数
oddSum+=i;//oddSum = oddSum + i;
}else{
evenSum+=i;//evenSum = evenSum + i;
}
}
System.out.println("0-100的奇数的和为:"+oddSum);//奇数和2500
System.out.println("0-100的偶数的和为:"+evenSum);//偶数和2550
}
}
package com.LynnStudy.structure;
/**
* @Author hql
* @Create 2022-04-03-14:09
*/
public class For_Demo03 {
public static void main(String[] args) {
//练习2 :用while或for循环,输出1-1000之间能被5整数的数,并且每行输出3个
for (int i = 0; i <= 1000; i++) {
if (i%5==0){//是能被5整数的数
System.out.print(i+"\t");// \t 是tab键
}
if (i%(5*3)==0){//实现每行输出三个 eg:当i=15时,则执行这里代码
System.out.print("\n");//换行 等价于 System.out.println();
}
}
}
}
增强型的for循环
package com.LynnStudy.structure;
/**
* @Author hql
* @Create 2022-04-03-15:05
*/
/*
增强型的for循环 语法:
for(声明语句 : 表达式){
//代码句子
}
*/
public class For_Demo05 {
public static void main(String[] args) {
int[] numbers = {10,20,30,40,50};//定义了一个数组 ,int[]是数组类型
for (int x : numbers){//将numbers数组里的每一个赋值给x
System.out.println(x);
}
System.out.println("===============");
for (int i = 0; i < 5; i++) {
System.out.println(numbers[i]);
}
}
}