ちょっと落ち着いて考えてみたら、とりあえずできてはいるので一旦置いておくことにして先に進める。無限ループを防ぐbreakへ。
前回はこちら。
入力された数値をもとに九九を表示するプログラムを改良しておりました。
で、いろいろ考えたんですけど「入力された数字の段まで出力」は、もう出来てるんですよね。
import java.util.Scanner;
public class kuku2{
public static void main(String[] args){
System.out.println("数字を入力してください (1-9)");
Scanner scanner =new Scanner(System.in);
int end = scanner.nextInt();
System.out.println("数字を入力してください (1-9)");
Scanner scanner =new Scanner(System.in);
int end2 = scanner.nextInt();
for(int x=1; x<=end;x++){
for(int y=1; y<=9;y++){
System.out.print(x*y);
System.out.print(" ");
}
System.out.println();
}
}
}
これ以上やるとなるとまたややこしくなるというか既になっていて、かれこれこの件が止まって二週間になりますので、やめ時というか完成形を見失ってしまったこともあって一旦棚上げしていいかげん先に進みます。
改めて、いま進めているテキストはこちら。
基礎からきちんと知りたい人のJavaプログラミングの入門書
http://coin.nikkeibp.co.jp/coin/itpro-s/book/dtl/nsw022.html
次は、と……無限ループの話のようです。
import java.util.Scanner;
public class Sum{
public static void main(String[] args){
Scanner scanner =new Scanner(System.in);
int total = 0;
String line ="0";
do{
int value =Integer.valueOf(line);
total +=value;
System.out.println("現在までの合計は"+total+"です。");
System.out.println("整数を入力:");
line = scanner.nextLine();
}
while(line.isEmpty() == false);
}
}
入力された整数をその都度足していく処理、、一度処理を実行してから繰り返すかどうか判別するdo~while文というやつですね。何も入力しないでEnterキーを押すと終了します。あれ?
import java.util.Scanner;
public class Sum{
public static void main(String[] args){
Scanner scanner =new Scanner(System.in);
int total = 0;
while (true){
System.out.println("現在までの合計は"+total+"です。");
System.out.println("整数を入力:");
String line = scanner.nextLine();
if(line.isEmpty() ){
break;
}
int value =Integer.valueOf(line);
total +=value;
}
}
}
別に無限ループじゃないぞ???と思ったら、すでに無限ループを防ぐbreakが仕込まれているのね。ってサンプルプログラムじゃなくて説明文の中に「無限ループになる部分コード」が書かれていました。我ながら斜め読みが過ぎる。
>>キーボードからの入力を受け取るためのパッケージをインポート
import java.util.Scanner;
>>前置き
public class Sum{
public static void main(String[] args){
>>キーボードからの入力を受け取る
Scanner scanner =new Scanner(System.in);
>>最初は0
int total = 0;
>>繰り返しの処理
while (true){
System.out.println("現在までの合計は"+total+"です。");
System.out.println("整数を入力:");
>>キーボードからの入力を変数に代入
String line = scanner.nextLine();
>>もし入力が無かったら終わり
if(line.isEmpty() ){
break;
}
int value =Integer.valueOf(line);
>>入力された数値が0以下だったときの処理
if (value<0){
System.out.println("負の数を入力したので、無視します。");
>>終わらず次の入力待ちをする
continue;
}
>>入力された数値を加算(して最初に戻る)
total +=value;
}
}
}
そしてこちらが「負の数が入力されたらその旨を表示して加算しないプログラム」です。とりあえずはどうにか前に進んだということで、今回ここまで!
続く!(すぐにとは言ってない)
ここから先は
0字
¥ 100
この記事が気に入ったらサポートをしてみませんか?