循环
package hello;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int a, balance = 0;
final int amount = 10;
while(true)
{
System.out.print("请输入:");
a = in.nextInt();
balance += a;
if(balance >= amount)
{
System.out.println("找零:" + (balance - amount));
balance = 0;
}
else
{
System.out.print("不够,");
}
}
}
}
数位数 while
package hello;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int count = 0;
int a = in.nextInt();
while(a > 0)
{
a /= 10;
count ++;
}
System.out.println(count);
}
}
Java 中 while(1){} 不能运行;
上面的程序边界值 0 不能正确输出;
数位数 do-while
package hello;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int count = 0;
int a = in.nextInt();
do
{
a /= 10;
count ++;
}while(a > 0);
System.out.println(count);
}
}
do-while 在判断 0 的时候可以正常输出;
猜数
package hello;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int number = (int)(Math.random() * 100 + 1);
int num;
int count = 1;
while(true)
{
num = in.nextInt();
if(num == number)
{
System.out.println("你猜对了,猜了 " + count + "次");
break;
}
else if(num > number)
{
System.out.println("你猜大了!");
count ++;
}
else if(num < number)
{
System.out.println("你猜的小了!");
count ++;
}
}
}
}
Math.random() 是 [0,1);
Math.random() * 100 + 1 是 [1,101);
逆序输出整数
package hello;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int a, b, c = 0;
a = in.nextInt();
while(a > 0)
{
b = a % 10;
a /= 10;
c = c * 10 + b;
}
System.out.println(c);
}
}
for 循环
package hello;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int nember = in.nextInt();
int sum = 1;
for(int i = 1; i <= nember; i ++)
{
sum = sum * i;
}
System.out.println(sum);
}
}
判断素数
package hello;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int nember = in.nextInt();
boolean flag = false;
System.out.print(2 + " ");
for(int i = 3; i <= nember; i ++)
{
flag = false;
for(int j = 2; j < i; j ++)
{
if(i % j == 0)
{
flag = true;
break;
}
}
if(!flag)
{
System.out.print(i + " ");
}
}
}
}
标号
退出指定的 for 循环;
package hello;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int nember = in.nextInt();
boolean flag = false;
int count = 0;
System.out.print(2 + " ");
OUT:
for(int i = 3; i <= nember; i ++)
{
flag = false;
for(int j = 2; j < i; j ++)
{
if(i % j == 0)
{
flag = true;
break OUT;
}
}
if(!flag)
{
count ++;
if(count == 5) break;
System.out.print(i + " ");
}
}
}
}
逻辑类型
boolean 类型:true / false;
最大公约数
package hello;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int a, b;
a = in.nextInt();
b = in.nextInt();
if(a > b)
{
int temp = a;
a = b;
b = temp;
}
for(int i = a; i >= 1; i --)
{
if(a % i == 0 && b % i == 0)
{
System.out.println(i);
break;
}
}
}
}
辗转相除法求最大公约数
package hello;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int a, b, r;
a = in.nextInt();
b = in.nextInt();
while(b != 0)
{
r = a % b;
a = b;
b = r;
}
System.out.println(a);
}
}