Java中的键盘录入数据与流程控制语句

键盘录入的基本格式

  • 为什么要键盘录入数据?

程序有时需要与用户进行交互,从而更好地实现需求,使得程序变得灵活。

  • 如何实现录入数据
package MyDemo;
import java.util.Scanner;
//导入包的格式是固定的(也可以使用自动提示添加)
public class MyTest2
{
    public static void main(String[] args)
    {
   		//先创建一个用来接收用户输入的录入对象
        Scanner sc = new Scanner(System.in);
        //通过对象获取从键盘输入的数据
        int i = sc.nextInt();
    }
}

流程控制语句

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。

顺序结构

程序中最简单最基本的流程控制。从上往下,依次执行。程序中大多数的代码都是这样执行的。

public class MyTest1
{
    public static void main(String[] args)
    {
        System.out.println("床前明月光,疑是地上霜");
        System.out.println("举头望明月,低头思故乡");
    }
}
/*	输出结果:
	床前明月光,疑是地上霜
	举头望明月,低头思故乡
*/

选择结构

选择语句的分类:if语句、switch语句

if语句

格式1

if(比较表达式或者是boolean类型的值) //括号中的值为true的时候执行语句体
{
	   语句体;
}
package MyDemo;
public class MyTest3
{
    public static void main(String[] args)
    {
        if(5>3)
            System.out.println("是的,答案正确!");
    }
}
//输出结果是:是的,答案正确!

格式2

if(比较表达式)//表达式结果为true执行语句体1
{
	 语句体1;
}
else //表达式结果为false执行语句体2
{
	 语句体2;
}
package MyDemo;
import java.util.Scanner;
public class MyTest1
{
    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();
        if(num1>num2)
        {
            System.out.println("第一个数字大于第二个数字");
        }
        else
            System.out.println("第二个数字大于第一个数字");
    }
}
/*输出结果:
请输入第一个数字:
34
请输入第二个数字:
23
第一个数字大于第二个数字*/

格式3

//谁括号中的表达式为true,执行谁的语句体,如果谁都不满足,执行else中的语句体
	if(比较表达式1) {
		语句体1;
	}else if(比较表达式2) {
		语句体2;
	}else if(比较表达式3) {
		语句体3;
	}
	.............
	else {
		语句体n+1;
	}
package MyDemo;
import java.util.Scanner;
public class MyTest1
{
    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();
        if(num1>num2)
        {
            System.out.println("第一个数字大于第二个数字");
        }
        else if(num1<num2)
            System.out.println("第二个数字大于第一个数字");
        else
            System.out.println("两个数字相等");
    }
}
/*输出结果:
请输入第一个数字:
12
请输入第二个数字:
12
两个数字相等*/

switch语句

基本格式:
 switch(表达式){
		case1:
			语句体1;
			break;
		case2:
			语句体2;
			break;
		case3:
			语句体3;
			break;
		....
		default:	
			语句体n+1;
			break;
	}

使用该语句,我们需要注意:
1、switch括号里面可以是常量,也可以是变量,里面允许的数据类型有:byteshortintcharstring枚举
2、case关键字后面只能跟常量,而且多个case后面的值不能出现相同的值;
3、default可以省略,但是不建议省略,当程序开始执行该语句发现没有case后面的常量可以与之匹配,就会执行default后面的语句;
4、break关键字可以省略,但此时会发生case穿透现象,就是直到遇到一个break或者语句执行完之后才会退出该语句,我们可以利用这一现象,根据自己的需求设计程序;

package MyDemo;
import java.util.Scanner;
public class MyTest1
{
    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
/*x首先与case关键字后面的常量进行匹配,发现没有与之对应的常量,
开始执行default语句,但此时执行完default语句却发现没有遇到break,
程序按照顺序结构往下面执行,直到switch语句结束,这就是case穿透现象*/

循环语句

循环语句在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码称为循环体语句;

必须存在循环控制语句,否则循环将一直执行下去,形成死循环;

  • 循环语句分为:for循环、while循环、do-while循环
  • 控制跳转语句的关键字:break、continue、return

for循环

for(初始化表达式语句;判断条件语句;控制条件语句)
 {//如果判断条件的语句为true就执行循环体语句,否则就退出循环
		循环体语句;
}
执行流程:
	a:执行初始化表达式语句
	b:执行判断条件语句,看其返回值是true还是false
		如果是true,就继续执行
		如果是false,就结束循环
	c:执行循环体语句;
	d:执行控制条件语句
	e:回到b继续。	
注意事项:
	初始化表达式语句只执行一次
package MyDemo;
import java.util.Scanner;
public class MyTest1
{
    public static void main(String[] args)
    {
        int dight=0,ten=0,hundred=0;
        int count=0;//统计水仙花数的个数
        System.out.println("打印出所有的水仙花数:");
        for(int i=100;i<1000;i++)
        {
            dight=i%10;
            ten=i%100/10;
            hundred=i/100;
            if(i==dight*dight*dight+ten*ten*ten+hundred*hundred*hundred)
            {
                System.out.println(i);
                count++;
            }
        }
        System.out.println("水仙花数共有:"+count+"个");
    }
}
/*输出结果:
打印出所有的水仙花数:
153
370
371
407
水仙花数共有:4个*/

while循环

初始化条件语句;
while(判断条件语句)
{//程序先判断条件语句是否为true,是就执行循环体,否则不进入循环
	循环体语句;
	控制条件语句;
}
package MyDemo;
import java.util.Scanner;
public class MyTest1
{
    public static void main(String[] args)
    {
        int sum=0,i=0; 
        System.out.println("求出1-100之和:");
        while(i<=100)
        {
            sum+=i;
             i++;
        }
        System.out.println("1-100的和为:"+sum);
    }
}
/*输出语句为:
求出1-100之和:
1-100的和为:5050*/

do-while循环

格式:
初始化条件语句;//程序先执行初始化条件语句;
//再执行循环体语句;
do {
		循环体语句;
		控制条件语句;//执行控制条件语句;
}while(判断条件语句);//执行判断条件语句,如果为true继续执行,否则跳出循环
package MyDemo;
import java.util.Scanner;
public class MyTest1
{
    public static void main(String[] args)
    {
        int sum=0,i=0;
        System.out.println("求出1-100之和:");
        do
        {
            sum+=i;
            i++;
        }while(i<100);
        System.out.println("1-100的和为:"+sum);
    }
}
/*输出结果:
求出1-100之和:
1-100的和为:5050*/

三种语句的区别

  • for循环:提前直到循环的次数
  • while循环:先判断,后执行。如果你想在循环结束之后继续使用控制条件的那个变量,使用while循环
  • do-while循环:至少执行一次循环体,先执行后判断

循环结构中注意死循环

死循环:

没有循环控制语句,循环永远在执行,因此一定要注意程序不能存在死循环;

//以下是死循环的案例:
package MyDemo;
import java.util.Scanner;
public class MyTest1
{
    public static void main(String[] args)
    {
        int sum=0,i=0;
        System.out.println("求出1-100之和:");
        while(i<=100)
        {
            sum+=i;//循环中没有控制语句,循环永远无法停止
        }
        System.out.println("1-100的和为:"+sum);
    }
}

控制跳转语句的三个关键字

break:

  • 与case(default)搭配使用,退出选择语句;
  • 用在循环语句里面,退出循环语句

continue:

  • 用在循环语句里面,结束本次循环,执行下一次循环

return:

  • 用在方法里面来结束方法或者带回一个返回值
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值