Scanner的引用、流程控制语句

Java键盘的录入

案例1:


import java.util.Scanner; //1.导入程序包
class  ScannerDemo{
	public static void main(String[] args) {
		//Scanner Java提供的类可以用来获取从键盘中输入的数据
		//2.创建键盘录入对象
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一个整数");
		//调用该方法,录入一个整数
		int num=sc.nextInt();
		//输出这个数字
		System.out.println("你输入的数字是:"+num);
	}
}

注意:

  1. 调用Scanner时需要导入程序包;
  2. Scanner需要大写

案例2:

键盘键入两个数,求最大值:

import java.util.Scanner; //1.导入包
class ScannerDemo2{
	public static void main(String[] args) {
		//2.创建Scanner对象
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入第一个整数");
		//3.录入用于输入的整数
		int one=sc.nextInt();
		System.out.println("请输入第二个整数");
		//3.录入用于输入的整数
		int two=sc.nextInt();
        int max=one>two?one:two;
		System.out.println("最大值是"+max);
	}
}

总结:利用三元结构表示比较简洁

案例三:

比较两个键入的两个整数是否相等:

import java.util.Scanner;
class  ScannerDemo3{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入第一个整数");
		int num1=sc.nextInt();
		System.out.println("请输入第二个整数");
		int num2=sc.nextInt();
		//比较两个数是否相同
		//boolean b=num1==num2?true:false;
		String b=num1==num2?"相等":"不相等";
		System.out.println(b);
		

	}
}

流程控制语句

  • 含义:在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以要求我们熟悉每条语句执行顺序来完成我们需要的功能。

  • 分类:顺序结构、选择结构、循环结构

顺序结构

  • 定义:是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
  • 执行流程:由上往下依次执行

选择结构

  • 定义:顾名思义就是可以根据要求选择性的执行相应的代码。
  • 分类:if语句;switch语句。

if语句的使用

if语句的格式1
  • if(比较表达式或者是boolean类型的值) {
    语句体;
    }
  • 执行流程:
    先计算比较表达式的值,看其返回值是true还是false。
    如果是true,就执行语句体;
    如果是false,就不执行语句体;
  • 案例演示
    判断两个数据是否相等

class  IFDemo{
	public static void main(String[] args) {
		int a=100;
		int b=100;
		if((a==b)){
			System.out.println("Hello World!");

		}
	}
}

注意
条件选择语句 if:
if(要一个结果是boolean类型的表达式或者值){
/*当()里面的结果是true时就会执行{}大括号里面的语句体/
语句体

	}
if语句格式2
  • if(比较表达式) {
    语句体1;
    }else {
    语句体2;
    }
    注意事项:else后面是没有比较表达式的,只有if后面有。*
  • 执行流程:首先计算比较表达式的值,看其返回值是true还是false。
    如果是true,就执行语句体1;
    如果是false,就执行语句体2;
  • 案例
class IFDemo2 {
	public static void main(String[] args) {
		/*
		if(条件){
		  条件为真,执行这个括号里面的代码
		}else{
		  条件为假,执行这个括号里面的代码
		}
		*/
		if(10+2>5-3){
			System.out.println("这是真的");
		}else{
			System.out.println("这是假的");
		}

		

		
	}
}
if语句的格式2和三元的相互转换问题

案例
获取两个数中的最大值

import java.util.Scanner;
class  IFDemo3{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入第一个整数");
		int a=sc.nextInt();
		System.out.println("请输入第二个整数");
		int b=sc.nextInt();
		//采用if else 来做 获取两个数的最大值
		//int max=a>b?a:b;
		//获取和输出打印是两个概念
		int max;
		if(a>b){
			max=a;
		}else{
			max=b;
		}

		 System.out.println("最大值是"+max);

	}
}

结论:

  1. 三元运算符实现的,都可以采用if语句实现。反之不成立。
  2. 什么时候if语句实现不能用三元改进呢?
    当if语句控制的操作是一个输出语句的时候就不能。
  3. 为什么呢?因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。
    案例
class  IFDemo5{
	public static void main(String[] args){
		int a=100;
		int b=10;
		int c=18;
		//求三个数的最大值
		int max=0;
		/*
        if(a>b){
		  if(a>c){
			  max=a;
		  }else{
		     max=c;
		  }
		}else{
         if(b>c){
		    max=b;
		 }else{
			max=c;
			
		  }
		
		}*/

		if(a>b&&a>c){
		   max=a;
		}else if(b>a&&b>c){
		   max=b;
		}else{
		  max=c;
		}
		
		System.out.println("最大值是:"+max);
	}
}
if 语句格式3
格式:
if(比较表达式1) {
	语句体1;
}else if(比较表达式2) {
	语句体2;
}else if(比较表达式3) {
	语句体3;
}
...
else {
	语句体n+1;
}
执行流程:
首先计算比较表达式1看其返回值是true还是false,
如果是true,就执行语句体1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false,

如果是true,就执行语句体2,if语句结束。
如果是false,接着计算比较表达式3看其返回值是true还是false,
...

如果都是false,就执行语句体n+1。

注意事项: 当只要有一个条件满足时,if语句结束。else是可以省略,但是不建议省略。

案例:
  1. 要求:键盘录入一个成绩,判断成绩等级
    90-100 优秀
    80-89 良
    70-79 中
    60-69 及格
    0-59 差
import java.util.Scanner;
class  IFDemo6{
	public static void main(String[] args) {
		  Scanner sc=new Scanner(System.in);
		 System.out.println("请输入你的成绩 0---100 不要数小数");
		 int score=sc.nextInt();
		 if(score>=0&&score<60){
			 System.out.println("不及格");
		 }else if(score>=60&&score<80){
			  System.out.println("差");
		 }else if(score>=80&&score<90){
			  System.out.println("中");
		 }else if(score>=90&&score<100){
			  System.out.println("优良");
		 }else if(score==100){
			  System.out.println("满分");
		 }else{
		  System.out.println("成绩不合法");
		 }

	}
}

案例二:
要求输入月份判断季节:
5. 用if语句实现下列需求:
键盘录入月份,输出对应的季节
3 4 5 春季
6 7 8 夏季
9 10 11 秋季
12 1 2 冬季

import java.util.Scanner;
class  IFDemo7{
	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入 1---12 中的一个整数");
		int num=sc.nextInt();
		if(num==3||num==4||num==5){
		  System.out.println("春季");
		}else if(num==6||num==7||num==8){
		  System.out.println("夏季");
		
		}else if(num==9||num==10||num==11){
		  System.out.println("秋季");
		
		}else if(num==12||num==1||num==2){
		 System.out.println("冬季");
		}else{
			System.out.println("你乱输的");
		}

	}
}

swith case 语句的使用

语句格式

switch语句的格式
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;

default:
语句体n+1;
break;
}
注意

  1. 表达式的取值:byte,short,int,char;
  2. break表示中断意思,不加break会出现case贯穿现象;
  3. default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似
执行流程

先计算表达式的值,然后和case后面的匹配,如果匹配成功就执行对应的语句,遇到break就会结束,否则执行default控制的语句

案例
class  SwitchDemo{
	public static void main(String[] args) {
		//Switch语句,也是一种选择语句
		
		int num=10;
          switch(num){
		           case 10:
                   System.out.println("是一个10");
				   //break;
				    case 20:
                   System.out.println("是一个20");
				  // break;
				    case 30:
                   System.out.println("是一个30");
				  // break;
				    case 40:
                   System.out.println("是一个40");
				   //break;
				    case 100:

                   System.out.println("是一个100");
				   //break;
				   default:
						 System.out.println("以上case项都没有匹配上,执行默认项里面的代码");
					break; 
				  
		  }

		   System.out.println("下来的程序");	
	}
}
case 穿透

case结束后不写break会继续执行下一个case,从而发生case穿透,可以加以利用:

  1. 键盘录入月份,输出对应的季节
    3 4 5 春季
    6 7 8 夏季
    9 10 11 秋季
    12 1 2 冬季
import java.util.Scanner;
class  SwitchDemo7zi{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.println("请键入数字");
		int num=sc.nextInt();
          switch(num){
					
		            case 12:
                   
				    case 1:
                
				    case 2:
                   System.out.println("冬季");
				   break;
				    case 3:
               
				    case 4:
                   
				    case 5:
                   System.out.println("春季");
				   break;
				   case 6:
                  
				    case 7:
                   
				    case 8:
                   System.out.println("夏季");
				   break;
				   case 9:
                  
				    case 10:
                  
				    case 11:
                   System.out.println("秋季");
				   break;
				   default:
						 System.out.println("乱输");
					break;			  
		  }

	}
}

注意

  1. case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的;
  2. default一定要在最后吗?不是,可以在任意位置。但是建议在最后;
  3. switch语句的结束条件
    a:遇到break就结束了
    b:执行到末尾就结束了
    案例:
class  SwitchDemo2{
	public static void main(String[] args) {
		int x = 2;
	    int y = 3;
	switch(x){
		default:
			y++;
			break;
		case 3:
			y++;
		case 4:
			y++;
	}
		System.out.println("y="+y); // 4 
	}
}

最终的输出结果是y=4
案例2:

class  SwitchDemo2{
	public static void main(String[] args) {
int x = 2;
	int y = 3;
	switch(x){
		default:
			y++;
		case 3:
			y++;
		case 4:
			y++;
	}
	System.out.println("y="+y);
}

结果y=6

swith 和 if 语句区别

在做判断的时候,我们有两种选择:if语句和switch语句,那么,我们到底该如何选择使用那种语句呢?
13. if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
14. switch语句使用场景:
针对几个常量值的判断

循环语句

for循环
for循环语句格式

for(初始化表达式语句;判断条件语句;控制条件语句) {
循环体语句;
}

执行流程
  1. 执行初始化表达式语句
  2. 执行判断条件语句,看其返回值是true还是false
    如果是true,就继续执行
    如果是false,就结束循环
  3. 执行循环体语句;
  4. 执行控制条件语句
  5. 返回2继续

注意初始化语句只执行一次

  • 案例:
public class ForDemo3 {
    public static void main(String[] args) {
        for(int i=0;i<10;i++){
            System.out.println("我爱你");
        }
    }
}

注意
* int i=0 循环的初始值
* i<100 循环是否继续的条件
* i++ 控制语句
* {}大括号里面的代码,叫做循环体,就是你要重复执行的语句

  • 循环的执行流程
    * 1.先执行初始语句 int i=1;这条语句只执行一次
    * 2.执行判断语句 i<100 如果是true 执行{}大括号里面的循环体语句
    * 3.执行控制语句 i++
    * 4.返回第2步继续执行,直到 i<10 是false 整个循环结束
利用for循环求和
  • 案例一:
    求出sum=1+2+…+100;
public class ForDemo {
    public static void main(String[] args) {
        int sum=0;
        for(int i=1;i<=100;i++){
            //sum=sum+i; //
            sum+=i;
        }
        System.out.println("结果是:"+sum);
    }
}
  • 案例二
    求1-100偶数和;奇数和;
public class ForDemo2 {
    public static void main(String[] args) {
    
        int ou=0;
        int ji=0;

        for(int i=1;i<=100;i++){
            if(i%2==0){
                ou+=i;
            }else{
                ji+=i;

            }
        }

        System.out.println("偶数和是"+ou);
        System.out.println("奇数和是"+ji);

    }
}
for 循环之水鲜花

案例:
在控制台输出所有的”水仙花数”
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数。
153 = 111 + 555 + 333 = 1 + 125 + 27 = 153

package org.westos.demo3;

public class ForDemo3 {
    public static void main(String[] args) {
        int count=0; //定义一个统计变量
        for(int i=100;i<=999;i++){
            int ge=i%10;
            int shi=i/10%10;
            int bai=i/100%10;
            int flowerNumber=ge*ge*ge+shi*shi*shi+bai*bai*bai;
            if(i==flowerNumber){
                System.out.println("水仙花数是: "+i);
                count++;
            }

        }

        System.out.println("水仙花数有"+count+"个");
    }
}
while 循环
语句格式
  1. while循环的基本格式:
    while(判断条件语句) {
    循环体语句;
    }
    完整格式:
    初始化条件语句;
    while(判断条件语句) {
    循环体语句;
    控制条件语句;
    }
  • 执行流程
  1. 执行初始化条件语句;
  2. 执行判断条件语句,看其返回值是true还是false
    如果是true,就继续执行
    如果是false,就结束循环
  3. 执行循环体语句;
  4. 执行控制条件语句
  5. 回到2继续。
案例
package org.westos.demo4;
public class WhileDemo {
    public static void main(String[] args) {
        //请输出10句我爱你
        int i=1;
        while (i<=10){ //条件
            System.out.println("我爱你");
            i++; //控制循环的语句,不要忘了
        }
        System.out.println("--------------------------------------");
        //求1---100之间的和
        int j=1;
        int sum=0;
        while (j<=100){
            sum+=j;
            j++;
        }
        System.out.println("和是 "+sum);

    }
}
do while
语句格式

do {
循环体语句;
}while(判断条件语句);

完整格式;
	初始化条件语句;
	do {
		循环体语句;
		控制条件语句;
	}while(判断条件语句);
执行流程
  1. 执行初始化条件语句;
  2. 执行循环体语句;
  3. 执行控制条件语句;
  4. 执行判断条件语句,看其返回值是true还是false
    如果是true,就继续执行
    如果是false,就结束循环
  5. 回到2继续;
案例
package org.westos.demo4;


public class DoWhileDemo {
    public static void main(String[] args) {
        
        int i=10;
        do{
            System.out.println("你好");
            i--;
        }while (i>2);
    }
}
三种循环的区别
  1. do…while循环至少执行一次循环体。
    而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
  2. 如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道用for循环。
    因为变量及早的从内存中消失,可以提高内存的使用效率。
循环嵌套
案例一

输出一个4行5列的星星(*)图案

package org.westos.demo5;

public class ForDemo {
    public static void main(String[] args) {
 
        //结论:外层循环控制行数,里层循环空列数
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.print("*"); //打印不换行
            }
            System.out.println(); //仅仅输出一个换行符
        }
    }
}

注意:
System.out.println("");和System.out.print("");的区别
结论:
外循环控制行数,内循环控制列数

案例二

请输出下列的形状
*
**
***
****
*****

package org.westos.demo5;


public class ForDemo2 {
    public static void main(String[] args) {
        //输出一个三角形
        //外层循环空行数,里层循环控制列数
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <=i; j++) {
                System.out.print("*");
            }
            System.out.println();

        }
    }
}
控制跳转语句break语句
  • 跳转语句的分类:
    break 中断
    continue 继续
    return 返回
  • break 使用在switch语句和循环语句中
    离开使用场景的存在是没有意义的
案例
package org.westos.demo5;


public class ForDemo4 {
    public static void main(String[] args) {
        for (int i = 0; i < 20; i++) {
            if(i==5){
                break;
            }
            System.out.println("爱老虎油");
        }
        System.out.println("----------------------");
        int j=1;
        while (true){
            j++;
            if(j==7){
                break;
            }
            System.out.println("爱老虎油");
        }
    }
}
控制跳转continue语句
  • 使用场景:循环语句,离开使用场景是没有意义的
  • 作用:跳出一次循环,执行下一步操作
案例
package org.westos.demo5;

public class ForDemo5 {
    public static void main(String[] args) {
       
        for (int i = 1; i <=10; i++) {
            if(i==5){
                continue; //跳过这次循环,继续下一次循环
            }
            System.out.println(i);
        }

        System.out.println("---------------------------");
        for (int i = 1; i <= 10; i++) {
            if(i%2==1){
                continue;
            }
            System.out.println(i);
        }
    }
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验名称:Java 流程控制语句实验报告 实验目的:通过实验,掌握 Java 中的流程控制语句的使用方法并能够熟练地应用到实际编程中。 实验内容: 1. if-else 语句:根据条件判断执行不同的代码块。 2. switch-case 语句:根据不同的情况执行不同的代码块。 3. for 循环语句:重复执行一段代码块,直到满足条件为止。 4. while 循环语句:重复执行一段代码块,直到满足条件为止。 5. do-while 循环语句:先执行一次代码块,然后重复执行一段代码块,直到满足条件为止。 实验步骤: 1. if-else 语句实验:编写一个程序,根据用户输入的数字,判断其正负性。 ```java import java.util.Scanner; public class IfElseDemo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入一个数字:"); int num = scanner.nextInt(); if (num > 0) { System.out.println(num + "是正数。"); } else if (num < 0) { System.out.println(num + "是负数。"); } else { System.out.println(num + "不是正数也不是负数。"); } } } ``` 2. switch-case 语句实验:编写一个程序,根据用户输入的数字,输出对应的星期几。 ```java import java.util.Scanner; public class SwitchCaseDemo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入一个数字(1-7)代表星期几:"); int day = scanner.nextInt(); switch (day) { case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; case 3: System.out.println("星期三"); break; case 4: System.out.println("星期四"); break; case 5: System.out.println("星期五"); break; case 6: System.out.println("星期六"); break; case 7: System.out.println("星期日"); break; default: System.out.println("你输入的数字不正确!"); break; } } } ``` 3. for 循环语句实验:编写一个程序,求 1~100 的和。 ```java public class ForDemo { public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; } System.out.println("1~100 的和是:" + sum); } } ``` 4. while 循环语句实验:编写一个程序,求 1~100 中的偶数和。 ```java public class WhileDemo { public static void main(String[] args) { int i = 1; int sum = 0; while (i <= 100) { if (i % 2 == 0) { sum += i; } i++; } System.out.println("1~100 中的偶数和是:" + sum); } } ``` 5. do-while 循环语句实验:编写一个程序,求 1~n 的阶乘。 ```java import java.util.Scanner; public class DoWhileDemo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入一个正整数:"); int n = scanner.nextInt(); int i = 1; int result = 1; do { result *= i; i++; } while (i <= n); System.out.println(n + " 的阶乘是:" + result); } } ``` 实验结果: 运行以上程序,得到以下输出结果: 1. if-else 语句实验: ``` 请输入一个数字:-5 -5是负数。 ``` 2. switch-case 语句实验: ``` 请输入一个数字(1-7)代表星期几:3 星期三 ``` 3. for 循环语句实验: ``` 1~100 的和是:5050 ``` 4. while 循环语句实验: ``` 1~100 中的偶数和是:2550 ``` 5. do-while 循环语句实验: ``` 请输入一个正整数:5 5 的阶乘是:120 ``` 实验结论: 通过本次实验,我对 Java 中的流程控制语句有了更深入的了解。if-else 语句可以根据条件判断执行不同的代码块;switch-case 语句可以根据不同的情况执行不同的代码块;for 循环语句可以重复执行一段代码块,直到满足条件为止;while 循环语句可以重复执行一段代码块,直到满足条件为止;do-while 循环语句可以先执行一次代码块,然后重复执行一段代码块,直到满足条件为止。掌握这些流程控制语句的使用方法对于编写 Java 程序具有重要的意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值