2024年java语言基础编程112

java语言基础编程112语法二 if 布尔表达式 1 语句 1 else if 布尔表达式 2 语句 2 else 语句 3 一个小问题 int x 20 if x 10 这个分号多余了 导致了接下来的打印没有条件控制

大家好,我是讯享网,很高兴认识大家。



语法二
if ( 布尔表达式 1 ){
// 语句 1
} else if ( 布尔表达式 2 ){
// 语句 2
} else {
// 语句 3
}

一个小问题:

int x = 20 ;
if ( x == 10 );   这个分号多余了,导致了接下来的打印没有条件控制
{
System . out . println ( "hehe" );
}
// 运行结果
hehe

此处多写了一个分号, 导致分号成为了 if 语句的语句体, { } 中的代码已经成为了和一个 if 无关的代码块

小练习:

判断一个年份是否为闰年
 
 讯享网 
 

2.switch语句

switch ( 表达式 ){
case 常量值 1 :{
语句 1 ;
break ;
}
case 常量值 2 :{
语句 2 ;
break ;
}
...
default :{
内容都不满足时执行语句 ;
break ;
}
}
注意事项1:
  • 多个case后的常量值不可以重复
  • switch的括号内只能是以下类型的表达式:
  • 基本类型:bytecharshortint,注意不能是long,float,double类型
  • 引用类型:String常量串、枚举类型
  • break不要漏掉
String类型我讲述一下:
讯享网

就是把String类型的变量放进switch的括号内

注意事项二:

switch 不能表达复杂的条件
// 例如 : 如果 num 的值在 10 20 之间 , 就打印 hehe
// 这样的代码使用 if 很容易表达 , 但是使用 switch 就无法表示 .
if ( num > 10 && num < 20 ) {
System . out . println ( "hehe" );
}
注意事项3:
switch 虽然支持嵌套 , 但是很丑并且看着难受,一般不推荐 ~:
 
 

综上, 我们发现, switch 的使用条件挺多的

三:循环结构

1:while循环

基本语法格式 :
循环条件只能是boolean类型, true, 则执行循环语句 ; 否则结束循环 .
代码示例 1: 计算 1! + 2! + 3! + 4! + 5! 的值
int num = 1 ;
int sum = 0 ;
// 外层循环负责求阶乘的和
while ( num <= 5 ) {
int factorResult = 1 ;
int tmp = 1 ;
// 里层循环负责完成求阶乘的细节 .
while ( tmp <= num ) {
factorResult *= tmp ;
tmp ++ ;
}
sum += factorResult ;
num ++ ;
}
System . out . println ( "sum = " + sum );
这里我们发现, 当一个代码中带有多重循环的时候, 代码的复杂程度就大大提高了. 而比较复杂的代码就更容易出错.
后面我们会采用更简单的办法来解决这个问题

2:break和continue

break:break 的功能是让循环提前结束.

讯享网
我们找到了,  break 就会让循环结束 .
continue:continue 的功能是跳过这次循环 , 立即进入下次循环
代码示例 : 找到 100 - 200 中所有 3 的倍数
 
  
执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句.

3:for循环

两种遍历数组的方式:
第一种:我们学C的时候普遍用的(java的数组定义和C不太一样,后面的博客我会具体讲解)
int [] array = new int []{ 10 , 20 , 30 , 40 , 50 };
for ( int i = 0 ; i < 5 ; i ++ ){
System . out . println ( array [ i ]);
}
第二种:java提供的 使用 for-each 遍历数组
int [] array = { 1 , 2 , 3 };
for ( int x : array ) {         这里for(元素的类型:数组名)
System . out . println ( x );
}
第二种的缺点就是拿不到数组的下标

4:do while循环

特点:先执行一次

先执行循环语句, 再判定循环条件,循环条件成立则继续执行,否则循环结束。
例子:打印1~10
int num = 1 ;
do {
System . out . println ( num );
num ++ ;
} while ( num <= 10 )
【注意事项】
1. do while 循环最后的分号不要忘记
2. 一般 do while 很少用到 , 更推荐使用 for while.

四:输入输出

1. 输出:

System . out . println ( msg ); // 输出一个字符串 , 带换行
System . out . print ( msg ); // 输出一个字符串 , 不带换行
System . out . printf ( format , msg ); // 格式化输出
  • println 输出的内容自带 , print 不带
  • printf 的格式化输出方式和 C 语言的 printf 是基本一致的.

例如:

System . out . println ( "hello world" );
int x = 10 ;
System . out .printf ( "x = %d " , x )

2:从键盘输入:

使用 Scanner 类里的方法 读取字符串 / 整数 / 浮点数
import java . util . Scanner ; // 需要导入 util
Scanner sc = new Scanner ( System . in );
在Java中,System.in 是一个预定义的输入流(InputStream),它代表了标准输入流。这个输入流通常对应于键盘输入,但是也可以被重定向,例如从文件或其他输入源读取数据。System.in是Java程序用来从外部(如用户)接收输入的一种方式
sc是Scanner类型的变量,它可以调用Scanner里面的方法
System . out . println ( " 请输入你的姓名: " );
String name = java语言基础编程112 sc . nextLine (); 读取下一行
has.NexLine(检查输入时是否还有下一行)
System . out . println ( " 请输入你的年龄: " );  
int age = sc . nextInt ();读取下一个整形
System . out . println ( " 请输入你的工资: " );
float salary = sc . nextFloat ();读取下一个浮点数
System . out . println ( " 你的信息如下:" );
System . out . println ( " 姓名 : " + name + " " + " 年龄: " + age + " " + " 工资: " + salary );
sc . close (); // 注意 , 要记得调用关闭方法,关闭Scanner对象,释放它所占用的资源
//sc.next() 读取下一个完整的token(一般是单词
// 执行结果
请输入你的姓名:
张三
请输入你的年龄:
18
请输入你的工资:
1000
你的信息如下:
姓名 : 张三
年龄: 18
工资: 1000 . 0
注意:一般不是读取一行的方法 例如sc.nextInt,会读取用户输入的整数直到遇到空格,换行符,或输入结束,如果用户输入的不是整数,就会抛出异常(和C不一样)

2.1:循环输入

使用 Scanner 循环读取 N 个数字,并求取其平均值(别忘了转换成double类型
 
 
注意事项 : 当循环输入多个数据的时候 , 使用 ctrl + z 来结束输入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl + d).

2.2. 猜数字游戏:

游戏规则 :二分查找的猜
系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了
import java.util.Random; import java.util.Scanner;; class Test { public static void main(String[] args) { Random random = new Random(); // 默认随机种子是系统时间 Scanner sc = new Scanner(System.in); int toGuess = random.nextInt(100);//生成随机数1~100(左闭右开) //int toGuess = random.nextInt(20)+10;//生成随机数10~30(左闭右开) // System.out.println("toGuess: " + toGuess); while (true) { System.out.println("请输入要输入的数字: (1-100)"); int num = sc.nextInt(); if (num < toGuess) { System.out.println("低了"); } else if (num > toGuess) { System.out.println("高了"); } else { System.out.println("猜对了"); break; } } sc.close(); } }
小讯
上一篇 2024-12-25 22:25
下一篇 2024-12-30 13:22

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/4826.html