目录
Java选择结构
多重if结构
格式:
if(表达式1){语句1}
else if(表达式2){语句2}
。。。。
else{}
例子:
成绩等第:
import java.util.Scanner;
//成绩输出选择判断
public class Score {
public static void main(String[] args) {
/*
成绩大于90分,输出优
成绩大于等于80分且小于90分,输出良
成绩大于等于60分小于80分,输出中
成绩小于60分,输出不及格
*/
System.out.println("请输入成绩:");
Scanner a=new Scanner(System.in);
int score=a.nextInt();
if(score>=90) {
System.out.println("优");
}
else if(score>=80){
System.out.println("良");
}
else if(score>=60){
System.out.println("中");
}
else{
System.out.println("不及格");
}
}
}
嵌套if循环
格式:
if(表达式1){
if(表达式2){
。。。。
}
}else{}
例子:
大小比较:
int x = 1;
int y = 2;
if (x != y) {
if (x > y) {
System.out.println(x+">"+y);
} else {
System.out.println(x+"<"+y);
}
} else {
System.out.println(x + "与" + y + "相等");
}
switch结构
格式:
switch(表达式1){
case 常量表达式1:语句1;break;
case 常量表达式2 :语句2;break;
。。。。
default:语句2;
}
注意:
变量名=变量名.toUpperCase();//把字符串中的字符全部改为大写
变量名=变量名.toLowerCase();//把字符串中的字符全部改为小写
在switch结构中可以没有default语句和break语句;default语句在switch条件不成立时才会被执行。
switch结构中表达式的值可以是基本数据类型中的byte short int char以及string类型。
如果当前匹配成功的 case 语句块没有 break 语句,则从当前 case 开始,后续所有 case 的值都会输出,如果后续的 case 语句块有 break 语句则会跳出判断。
例子:
星期输出:
import java.util.Scanner;
//星期的输出
public class WeekDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入1-7之间的数字:");
int n = sc.nextInt();
switch (n) {
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("超出了1-7的范围");
}
}
}
Java循环结构
while循环
格式:
while(循环条件){
语句;
}
备注:
① 如果循环体只有一条语句,大括号可以省略;有多条语句时,大括号不能省略;
② while() 后面不要加分号,否则会进入死循环
例子:
打印小于5的值:
//打印输出小于5的值
int n = 1;
while (n < 5){
System.out.println(n);
n++;
}
分两行循环输出26个英文字母
public class CharDemo {
public static void main(String[] args) {
//分两行循环输出26个英文字母
char ch='a';
int count=1;//控制换行
while(ch<='z') {
System.out.print(ch+" ");
ch++;
if (count%13==0) {
System.out.println();
}
count++;
}
}
}
Scanner 从键盘接收不同数据类型数据方法:
int — nextInt() long — nextLong()
float — nextFloat() double — nextDouble()
字符串 — next() 布尔 — nextBoolean()
java没有提供直接接收char字符数据的方法需要先接收字符串数据,然后再进行转换
例:
String str =sc.next();
Char ch =str.charAt(0);
str.charAt(0)只能接受str字符串的第一个字符
do-while循环
格式
do {
语句;
} while (循环条件);
备注:
do-while循环至少执行一次;
循环条件后的分号不能丢;
局部变量使用前必须要初始化
例子
猜字游戏
public class GuessDemo {
public static void main(String[] args) {
// 猜字游戏:输入一个1--10的数字,与随机数字匹配,通过给出的提示多次修改直至猜中为止
System.out.println("猜字游戏(1——10)");
Random random = new Random();
int r = random.nextInt(10);
if(r==0) {
r++;
}
int guess = 0;
do {
System.out.print("请输入你猜测的数:");
Scanner sc = new Scanner(System.in);
guess = sc.nextInt();
if (guess > r) {
System.out.println("你测的数大了!");
} else if (guess < r) {
System.out.println("你猜的数小了!");
}
} while (guess != r);
System.out.println("你猜中了!答案是:" + r);
}
}
for循环
格式
for (循环变量初始化;循环条件判断;改变循环变量) { 语句; }
注意:
三个表达式之间用分号隔开,三个表达式可以省略不写,但表达式之间的分号不能省略。
方法里的变量是局部变量,局部变量的有效范围只在定义它的大括号内有效!
例子
1-5的累加和
public class ForDemo{
public static void main(String[] args) {
//1到5的累加和
int sum=0;
for(int n=1;n<=5;n++){
sum=sum+n;
}
System.out.println("1到5的累加和是:"+sum);
}
}
三种循环使用选择
for循环--知道循环次数
while循环--不确定循环次数,只知道要达到某个条件
do-while循环--不确定循环次数,至少执行一次
嵌套循环
格式
while (循环条件1) { ... while(循环条件2) { } }
例子
输出直角三角形
public class StarDemo{
public static void main(String[] args) {
int m = 1; //外循环变量
while (m <= 4) {
int n = 1;
while (n <= m) {
System.out.print("*");
n++;
}
System.out.println();
m++;
}
}
}
阶乘的累加和
public class JieChengPlus{
public static void main(String[] args) {
//求1到4阶乘的累加和
int s=1,sum=0;
for(int i=1;i<=4;i++) {
s=1;
for(int j=1;j<=i;j++) {
s=s*j;
}
sum=sum+s;
}
System.out.println("1!+2!+3!+4!="+sum);
}
}
break语句
break语句的作用是结束当前循环的执行。
执行完break语句后,循环体中位于break语句后面的语句就不会被执行。
在多重循环中,break语句只往外跳一层。
continue语句
只能用在循环里
结束当前循环的执行,但会继续下一个循环的执行