一、循环
1.1循环结构(重复的做一件事)
1.1.1while语句
while(布尔表达式){
语句块;
}
1.如果布尔表达式为真,则执行循环
2.循环有三个条件:循环初始条件、循环判断条件、循环改变条件。如果缺少循环改变条件,那么将陷入死循环(判断条件永远为真)
3.例题:求5!的和
public static void main(String[] args) {
int j=1;
int sum=0;
while(j<=5) {
//求5!
int ret = 1;
int i = 1;
while (i <=j) {
ret *= i;
i++;
}
sum+=ret;
j++;
}
System.out.println(sum);
}
4.while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
5.while 后面不要多写 分号, 否则可能导致循环不能正确执行
1.1.2 break
1break表示结束所有的循环
2.例题:找到1-100中第一个3的倍数
public static void main7(String[] args) {
int i=1;
while(i<=100){
if(i%3==0){
System.out.println(i);
break;
}
i++;
}
}
1.2.3 continue
1.continue表示结束本次循环
2.例题:找出1-100中3的倍数
public static void main(String[] args) {
int i=1;
while(i<=100){
if(i%3!=0){
i++;
continue;
}else{
System.out.println(i);
}
i++;
}
}
1.2.4 for循环
1.基本语法:(表达式2一定是布尔表达式)
for(表达式1;表达式2;表达式3){
循环体;
}
2.执行顺序:第一次执行:表达式1,表达式2,语句块,表达式3;第二次:表达式2,语句块,表达式3......表达式1(循环条件初始化)只有第一次执行
3.例题:求5!的和
public static void main(String[] args) {
int sum=0;
for(int j=1;j<=5;j++){
int ret=1;
for(int i=1;i<=j;i++){
ret*=i;
}
sum+=ret;
}
System.out.println(sum);
}
1.2.5 do while 循环
1.基本语法
do{
循环语句;
}while(循环条件);
2,先执行语句,在判定循环(所以最少执行一次),如
public static void main(String[] args) {
int i=0;
do{
System.out.println("aa");
}while(i!=0);
}
二、输入输出
1.1输出到控制台(三种)
1.print打印完不换行
2.println打印完换行(打印数字不加引号)
3.printf(“%d\n",10),格式化输出
1.2从键盘输入
1.使用Scanner读取字符串/整数/浮点数(导包:import java.util.Scanner)
2.例题:
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name=sc.nextLine();
System.out.println("请输入你的年龄:");
int age=sc.nextInt();
System.out.println("请输入你的工资:");
float salary=sc.nextFloat();
System.out.println("整合信息如下:");
System.out.println("姓名:"+name+"\n"+"年龄"+age+"\n"+"工资"+salary);
}
3.next:遇到空格就会结束程序的运行:nextLint:遇到空格不会结束程序的运行
4.若想先读一个整数,再读一个字符串,那么在控制台输入整数之后就会结束程序的运行。所以用nextLine ()输入字符串的时候,那它的前面不能用nextInt()输入一个整数
5.使用Scanner循环读取n个整数,使用sc.hasNextInt(),想结束循环用Ctrl+d(面试时,若在网页/OJ上,后台会帮忙结束循环):
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()) {
int a=sc.nextInt();
System.out.println(a);
}
}
6.猜数字游戏(1-100之间)
import java.util.Random;
import java.util.Scanner;
public class Game {
public static void main(String[] args) {
Random random=new Random();//生成一个随机数,如果加了参数,就会生成伪随机数
int randNum=random.nextInt(100)+1;//生成[1,101)之间的随机数
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数字[1-100]:");
while(sc.hasNextInt()){
int num=sc.nextInt();
if(num>randNum){
System.out.println("大了!");
}else if(num==randNum){
System.out.println("找到了!");
break;//非常重要,否则循环不会结束
}else{
System.out.println("小了!");
}
}
}
}
伪随机数:第一次运行时生成一个随机数,后面再次运行时随机数不会改变