Java_1_03

本文详细介绍了Java编程的基础知识,包括键盘录入、流程控制、顺序结构、分支结构、循环结构等内容,通过实例讲解了if语句、switch语句、for循环、while循环、do-while循环的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

键盘录入

  • 1.导包:

  •   import java.util.Scanner;
    
  • 2.创建对象:

      Scanner sc = new Scanner(System.in);
    
  • 3.调用方法:

      int i = sc.nextInt(); //输入数字
      String s1 = sc.next();//输入字符串
      String s2 = sc.nextLine();//输入字符串
       
      !!! next() 和 nextLine() 的区别: !!!
      next()一定要读取到 有效字符 后才结束输入,
      		对之前遇到的 空格键、Tab 或Enter 等结束符会自动将其去掉
      		只有在输入有效字符之后,才将之后的空格键、Tab 或Enter 等视为分隔符或结束符。
      		简单地说,next()查找并返回来自此扫描器的下一个完整标记
      		完整标记的前后是与分隔模式匹配的输入信息
      		next方法不能得到带 空格 的字符串
    
      nextLine()方法的结束符只是Enter键,
      			即nextLine()方法返回的是 Enter 之前的所有字符,它可以得到 带空格 的字符串。 
    

流程控制

  • 顺序结构
  • 分支结构
  • 循环结构

顺序结构

分支结构

1. if 语句

格式:
1. if(条件表达式){//条件表达式必须为 boolean 类型
		语句体;	  // 只有一条有效语句时,可以省去 花括号
	}
2. if(条件表达式){
		语句体;
	}else{
		语句体;
	}
3. if(条件表达式){
		语句体;
	}else if(条件表达式){
		语句体;
	}else if(条件表达式){
		语句体;
	}else{
		语句体;
	}
局部代码块
由一对花括号括起来的代码块。
作用:
	可以让 变量 更早地在内存中消失,节省内存空间。

2. switch 语句

switch(表达式){ //表达式的类型:byte、short、int、char、String、枚举
	case 值1:
		语句体;
		break; 
	case 值2:
		语句体;
		break;
	...
	default:   
		语句体;
		break;						
}

注意:

  • break不写 会导致 switch穿透(因为之前匹配过一次,之后case不会二次匹配,后面的语句均会执行)
  • default语句 可以放在 switch 语句内的任意行,但不管在哪一行,都只会在所有 case 后执行
  • switch 的结束标记有:break结尾花括号 ‘}’

循环结构

1. for循环

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

2. while循环

格式:
	初始化条件;
	while(判断条件){
		循环语句;

		控制条件;
	}

3. do-while循环

格式:
	初始化语句;
	do{
		循环语句;
		
		控制条件;
	}while(判断语句);

死循环

  • for(;😉{ }
  • while(true){ }

三种循环的区别

  • for 和 while 与 do…while 的区别?
    • for 和 while
      • 先判断,再循环和控制;
      • 判断 永远比 控制 多执行一次;判断至少执行一次,
      • 而控制可以一次都不执行
    • do…while
      • 先循环,再控制和判断
      • 判断 和 控制 执行次数一致
  • for 与 while 各自应当在何时使用?
    • 循环次数明确时:for
    • 循环次数不明确时:while

跳转控制语句

break

用在 循环 和 switch 中

  • switch
    • 结束 switch 语句
  • 循环
    • 结束整个循环

continue

用在 循环 中

  • 循环
    • 结束本次循环,进入下一次循环
ps:在同一对花括号里,continue 和 break 后不能有任何语句;因为其后的语句不管是什么,都绝对不会执行,编译器认为这些语句是无用的、有语法错误,故其会在编译时 报错 !

练习

  1. 判断春夏秋冬(ifelse/swtich)
    需求:键盘录入一个数(代表月份),判断该数字是哪个季节
    春天:3,4,5
    夏天:6,7,8
    秋天:9,10,11
    冬天:12,1,2
public class Test02 {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个月份数:");
		int i = sc.nextInt();
		if(i>=3 && i<=5){
			System.out.println(i + "月是春天!");
		}else if(i>=6 && i<=8) {
			System.out.println(i + "月是夏天!");
		}else if(i>=9 && i<=11) {
			System.out.println(i + "月是秋天!");
		}else if(i>12 || i<=0) {
			System.out.println("您输入的月份数有误!");
		}else {
			System.out.println(i + "月是冬天!");
		}		
	}
}

在这里插入图片描述
2. 4. 判断星期数(switch)
需求:键盘录入一个数字,判断该数字是星期几

public class Test04 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入0~7间的任一数字:");
		int i = sc.nextInt();
		switch(i) {
			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. 在控制台输出所有的水仙花数,并统计水仙花数共有多少个。

public class Test06 {//水仙花数是指每一位的立方相加等于该数自己,三位数
	public static void main(String[] args) {
		int sum = 0;
		for(int i = 100;i < 1000;i++) {
			int a = i%10; 
			int b = i/10%10;
			int c = i/100%10;
			if(i == (a*a*a) + (b*b*b) + (c*c*c)) {
				sum++;
				System.out.println(i + "是一个水仙花数!");
			}
		} 
		System.out.println("一共有 " + sum + " 个水仙花数");
	}
}

在这里插入图片描述
4. 在控制台上输出一个由星星组成的等腰三角形图案

public class Test08 {
	public static void main(String[] args) {
		for(int i = 0;i<5;i++) {
			for(int j=5;j>i;j--) {
				System.out.print(" ");
			}
			for(int k=0;k<2*i;k++) {
				System.out.print("*");
			}
			System.out.println("*");
		}
	}
}

在这里插入图片描述
5. .在控制台上输出九九乘法表

public class Test09 {
	public static void main(String[] args) {
		for(int i = 1;i<10;i++) {
			for(int j=1;j<=i;j++) {
				int sum = i * j;
				System.out.print(j+" * "+i+" = "+sum +"  ");
			}
			System.out.println("");
		}
	}
}

在这里插入图片描述
6. 分析以下需求,并用代码实现:
1.打印1到100之内的整数,但数字中包含9的要跳过
2.每行输出5个满足条件的数,之间用空格分隔
3.如:1 2 3 4 5

public class Test12 {
	public static void main(String[] args) {
		int sum = 1;
		for(int i=1;i<=100;i++) {
			if(i%10 != 9 && !(i>=90 && i<100)) {	
				System.out.print(i + " ");
				if(sum % 5 == 0) {
					System.out.println(" ");
				}
				sum++;
			}
		}		
	}
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值