サイクル
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("不够,");
}
}
}
}
桁数
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);
}
}
while(1){}はJavaでは実行できません。
上記のプログラム境界値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 + " ");
}
}
}
}
論理型
ブール型: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);
}
}