一つ前の質問で、for文を使って1~100までの数字を表示できるようになったのですが、タイトルのとおり、さらに条件を加えるにはどうしたら良いでしょうか、教えてください。

A 回答 (1件)

おはようございます。


i%2の結果をご存知のようですので、
これを使えばよいかと思います。

i%2は2で割ったあまりを出力しますので、
0になれば2の倍数であるといえます。

制御文の中で条件分岐をすれば問題ありません。

if文はご存知でしょうか。
(javaでは「==」である点に注意してください。)

// 1から100まで。
for (int i = 1; i <= 100; i++) {
// 偶数であれば出力します。
if (i % 2 == 0) {
System.out.println(i);
}
}

参考URL:http://www.javaroad.jp/java_control2.htm
    • good
    • 0
この回答へのお礼

 たびたび、ありがとうございます。2の倍数表示できました!!おかげで朝からテンション上がりまくりです。

お礼日時:2005/04/18 06:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q1~100までの数字を表示したい

私は、JAVA歴2日の初心者です。質問集を見て、ようやくコンパイルができるようになり、今は単体の数字や文字ができる程度のレベルです。タイトルのとおり1~100までの複数の文字を表示するにはどうすればよいか教えてください。

Aベストアンサー

単体の数字や文字が出力できるレベルということですので、System.out.print()やSystem.out.println()で出力しているということでしょうか。
100回出力をしてももちろん出力はされますが、制御文を使ったほうが良いかと思います。

制御文のfor文を使用した場合は...
System.out.println(1);
System.out.println(2);
System.out.println(3);



System.out.println(100);

for (int i=1; i<=100; i++){
System.out.println(i);
}

といった感じで記載します。

参考URL:http://www.javaroad.jp/java_control1.htm

QJavaで改行などが出来ないのです。

 Java の事で質問です。 
 

 System.out.println("このようにしても\n");

 改行できません。
 
 このようにしても\n   

 と表示されてしまいます。どうしてでしょう。ちなみにOSはMacOS9.1です。なにか関係があるのでしょうか?

Aベストアンサー

> class amigo{
> public static void main(String args[]) {
> System.out.print("aaaaaaaa");
> System.getProperty("line.separator");
> System.out.print("bbbbbbbb");
> }
> }
> のような使い方でしょうか?

String line_sep = System.getProperty("line.separator");
System.out.println("あいうえお" + line_sep + "かきくけこ");

こうです。

Qシンボルが見つかりませんというエラーが理解できません。

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Image[3];
Thread t;
int index1 = 0;
int index2 = 0;
String msg = "";
String msg1 = "";

boolean state = false;
Button b1 = new Button("ぐー");
Button b2 = new Button("ちょき");
Button b3 = new Button("ぱー");

public void init(){
for(int i = 0; i<=2; i++){
img[i] = getImage(getDocumentBase(),"hanabi" + (i+1) + ".JPG");
}
add(b1);
add(b2);
add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
msg1 = "結果は・・";

}

public void paint(Graphics g){
g.drawImage(img[index1],350,30,this);
g.drawImage(img[index2],695,30,this);
g.drawString("コンピューター",420,300);
g.drawString("あなた",800,300);
g.drawString(msg,630,320);
g.drawString(msg1,550,320);
}

public void start(){
state = true;
t = new Thread(this);
t.start();

}

public void run(){
while(state){
index1++;
if(index1 == 3){
index1 = 0;
}
index2++;
if(index2 == 3){
index2 = 0;
}
repaint();
try {
Thread.sleep(60);
}catch(InterruptedException e) { }
}
}

public void actionPerformed(ActionEvent e){
if(state == false) {
start();
return;

}
state = false;
if(e.getSource() == b1) {
msg = "ぐー";
index2 = 0;
}

else if(e.getSource() == b2){
msg = "ちょき";
index2 = 1;
}

else if(e.getSource() == b3){
msg = "ぱー";
index2 = 2;
}
check();
repaint();
}

public void check() {
if(index1 == index2) msg ="あいこ";


else if (index1 == 0) {
if(index2 == 2) msg="あなたの勝ち";
else msg ="あなたの負け";
}

else if(index1 == 1) {
if(index2 == 0) msg="あなたの勝ち";
else msg="あなたの負け";
}

else if(index1 == 2) {
if(index2 == 1) msg="あなたの勝ち";
else msg="あなたの負け";
}

}
}

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Imag...続きを読む

Aベストアンサー

「シンボルを見つけられません。」というエラーの下に何か表示がありませんでしたか?そこにヒントがあると考えられます。
シンボルを見つけられませんといエラーが表示される主な理由は4つあります。
(1)クラス、メソッド、変数などの綴りミスや定義していない変数を使用している可能性がある。
(2)コンストラクタを呼び出すときに、newを忘れている可能性がある。(3)公開されていないメンバーを呼び出している可能性がある。
(4)必要なimport文を記述し忘れている可能性がある。
ここでのあなたのエラーは(1)番ではないでしょうか?上記ではimageとなっている変数がimgになっていますね。
これはエラー表示をよく見ることで意外と簡単に解決できるのです。
ゆっくり丁寧にエラー表示を見るように心がけることが大事ですよ。

Q3のつく数字と3の倍数のみを表示するプログラム

C言語で3のつく数字と3の倍数のみ(1~150)を表示するプログラムを作りたいのですがどうすればいいのでしょうか?

Aベストアンサー

数字で全部処理するとしたら、ある数x(1~150)について

・xが3で割り切れるかどうか?(x%3が0かどうか)
・xの下1桁目が3であるかどうか?(x%10が3かどうか)
・xの下2桁目が3であるかどうか?(x%100/10が3かどうか)

以上のことをif文等で場合分けすればいいかなと思います。
(汎用性を考えるなら、No.2さんの考え方の方が良いです)

QIOException ってどういうときに起こるのでしょうか?

IOException ってどういうときに起こるのでしょうか?

http://www.atmarkit.co.jp/fjava/rensai2/javaent12/javaent12.html
を見て勉強しています。

  catch ( IOException e) {
    System.out.println( "キーボードが故障しているのかもしれません" );
  }

と書いてあります。
ハード(キーボード)が故障しているのを Java のプログラムのレベル(ソフトウェア)で感知できるというのがよくわかりません。「

NumberFormatException の方はわかるのですが・・・

Aベストアンサー

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接続だったりするわけですけど、
InputStreamは、その入力元の情報を持っていないので、
データを読み取る際は常に
IOExceptionをキャッチするコードを書かなくてはいけません。
たとえ、絶対にIOエラーが発生しないストリームだとしても。

さらに付け加えるなら、
そもそも「標準入力=キーボード」であるとは限りません。
(一般的にはキーボードであることが多いですが。)
Javaでは、
System.setIn(InputStream)
を呼び出して、標準入力を変えてしまうことができますし、
標準入力を指定してプログラムを実行することができるOSもあります。

追伸1:
例外をキャッチしたときは、
スタックトレースをプリントすることをおすすめします。
catch (IOException e) {
e.printStackTrace();
}

追伸2:
そのプログラムでIOExceptionを発生させる最も簡単な方法は、
readLine()を呼び出す前に
標準入力(System.in)を閉じてしまうことです。
System.in.close();

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接...続きを読む

Q九九の表

を作るプログラムなんですが結果がずれて表示されるんですがどうせればきれいにそろうんでしょうか??
いくらやっても上手くいきません・・・。
どなたかヒントもらえませんか。
\tを試して一応そろったんですがもっとコンパクトな表示結果にしたいんです。
プログラムはこんな感じです。
public class Kukuhyou3 {
public static void main(String[ ] args) {
int i,j,kekka;

System.out.println(" | 1 2 3 4 5 6 7 8 9");
System.out.println("--+----------------------------");

for(i = 1;i < 10;i++) {
System.out.print( " "+ i +"|");
for(j=1; j < 10; j++) {
kekka=i * j;
System.out.print(" "+kekka);
}
System.out.println("");
}
}
}

を作るプログラムなんですが結果がずれて表示されるんですがどうせればきれいにそろうんでしょうか??
いくらやっても上手くいきません・・・。
どなたかヒントもらえませんか。
\tを試して一応そろったんですがもっとコンパクトな表示結果にしたいんです。
プログラムはこんな感じです。
public class Kukuhyou3 {
public static void main(String[ ] args) {
int i,j,kekka;

System.out.println(" | 1 2 3 4 5 6 7 8 9");
System.out.println("--+----------------------------");

for...続きを読む

Aベストアンサー

2次元配列を使用してみました。目下、デザインパターンの勉強中で、tatsu99さんみたいに抽象化、再利用性の高いものはできないのですが、以下のソースなどを元にして、他人のプログラムを読み取る、という能力も同時に身に付けてもらえたら、と思います。

public class Kukuhyou3 {
public static void main(String[] args) {
int kuku [][] = new int[9][9];

System.out.println(" | 1 2 3 4 5 6 7 8 9");
System.out.println("--+----------------------------");

for(int i = 1;i < 10;i++) {
System.out.print( " "+ i +"|");
for(int j=1; j < 10; j++) {
// 答えが1桁の時のみ、前にも空白を入れます。
Figure blank = new Figure(10);
blank.judge(i,j);

kuku[i-1][j-1] =i * j;
System.out.print(" "+kuku[i-1][j-1]);
}
System.out.print("\n");
}
}
}

class Figure {
private int nbsp;

public Figure(int _nbsp){
this.nbsp = _nbsp;
}

public void judge(int i,int j){
if(i*j < nbsp) System.out.print(" ");
}
}

2次元配列を使用してみました。目下、デザインパターンの勉強中で、tatsu99さんみたいに抽象化、再利用性の高いものはできないのですが、以下のソースなどを元にして、他人のプログラムを読み取る、という能力も同時に身に付けてもらえたら、と思います。

public class Kukuhyou3 {
public static void main(String[] args) {
int kuku [][] = new int[9][9];

System.out.println(" | 1 2 3 4 5 6 7 8 9");
System.out.println("--+----------------------------");

for...続きを読む

Q「httpステータス404」というエラーが出ます。

「httpステータス404」というエラーが出ます。

java初心者です、宜しくお願い致します。
EclipseでServletを書いてやりましたが、以下のようなエラーが出ます、
原因はなんでしょうか、宜しくお願い致します。
「httpステータス404-/Servlet%E7%B7%B4%E7%BF%92/ ServOutput」

Aベストアンサー

Not Found
という意味です。
そのファイルが無い。あるいはリンクが間違っています。
詳しくは参考URLをみてください。

参考URL:http://ja.wikipedia.org/wiki/HTTP_404

Qpublic static void main (String args[])

基本すぎて申し訳ありませんが、
public static void main (String args[])とはどういう意味を持っていますか?
教えてください。。

Aベストアンサー

staticとかの意味はNo1の方の説明以外にありません。

mainは最初に実行されるメソッドという説明がされますので、「クラスを実行する時の引数とは?」と引っかかっているのかもしれませんね。
これはコマンドライン引数と呼ばれます。

たとえば、次のプログラム

public class ArgsTest{
  public static void main(String[] args){
    System.out.println(args.length);
    for(int i = 0 ; i < args.length ; i++){
      System.out.println(args[i]);
    }
  }
}

これを
>java ArgsTest abcde fghij(エンター)
として実行するとabcdeとfghijが引数となります。

ちなみに、mainはpublicでstaticなメソッドなので、
public class ArgsTest2{
  public static void main(String args[]){
    tamesi();
  }
  void tamesi(){
    String[] test = {"abcde","fghij"};
    ArgsTest.main(test);
  }
}
のように、外部のクラスからクラス名.mainで呼び出せます。(この2つのプログラムは、私が悩んだ時に試しにつくったものです)

ちなみにargsはarguments(=引数)の略で、mainの引数として、よく使われます。
argvのほうはargument valueの略です。C言語を使っていた人の中にはargvを使う人がいるかもしれません。

staticとかの意味はNo1の方の説明以外にありません。

mainは最初に実行されるメソッドという説明がされますので、「クラスを実行する時の引数とは?」と引っかかっているのかもしれませんね。
これはコマンドライン引数と呼ばれます。

たとえば、次のプログラム

public class ArgsTest{
  public static void main(String[] args){
    System.out.println(args.length);
    for(int i = 0 ; i < args.length ; i++){
      System.out.println(args[i]);
    }
  }
}

...続きを読む

Q九九を横に表示する。

入力した整数までの九九を
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
以下略

のように表示したいのですが
私の作ったプログラムだと縦に表示されてしまいます。
1
2
3
4
5
6
7
8
9
のように。(-"-;A ...
プログラムは以下の通りです。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class q07quiz07 {

/**
* @param args
*/
public static void main(String[] args)throws IOException {
// TODO 自動生成されたメソッド・スタブ

System.out.println("整数を入力してください。");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));

String str = br.readLine();
int num = Integer.parseInt(str);
int i , j;
i = 1;

while(i <= num){
j = 1;

while(j <= 9){
System.out.println(i*j+ " ");
j++;
}

System.out.println();
i++;
}
}

}
回答よろしくお願いします。

入力した整数までの九九を
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
以下略

のように表示したいのですが
私の作ったプログラムだと縦に表示されてしまいます。
1
2
3
4
5
6
7
8
9
のように。(-"-;A ...
プログラムは以下の通りです。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class q07quiz07 {

/**
* @param args
*/
public static void main(String[] args)throws IOException {
// TODO 自動生成され...続きを読む

Aベストアンサー

System.out.prntとSystem.out.printlnこれの違いが理解できれば解決しそうですが ・・・

Qequalsの逆

javaで、文字列の場合は比較演算子の「==」は用いずに

if ((str1.getText()).equals(str2)){
(※…str1,2は文字列)

と書きますよね?
この逆で、文字列str1とstr2は等しくないとき、にはif以下の条件文をどのように書けばよいでしょうか?

Aベストアンサー

>if !((str1.getText()).equals(str2)){

あくまで
if(){
}


!(str1.getText()).equals(str2)
が入っているので
if !((str1.getText()).equals(str2)){
じゃなくて
if (!(str1.getText()).equals(str2)){
こう。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報